.sort()
и .reverse()
изменить список на месте и вернуться None
См. документацию изменчивой последовательности :
Методы
blockquote>sort()
иreverse()
изменяют список для экономии пространства при сортировке или изменении большого списка. Чтобы напомнить вам, что они работают по побочному эффекту, они не возвращают отсортированный или реверсивный список.Сделайте это вместо:
a.sort() print(a) a.reverse() print(a)
или используйте кнопку
sorted()
иreversed()
.print(sorted(a)) # just sorted print(list(reversed(a))) # just reversed print(a[::-1]) # reversing by using a negative slice step print(sorted(a, reverse=True)) # sorted *and* reversed
Эти методы возвращают новый список и оставляют исходный вход список нетронутых.
Демо, сортировка и реверсирование на месте:
>>> a = [66.25, 333, 333, 1, 1234.5] >>> a.sort() >>> print(a) [1, 66.25, 333, 333, 1234.5] >>> a.reverse() >>> print(a) [1234.5, 333, 333, 66.25, 1]
И создание новых отсортированных и перевернутых списков:
>>> a = [66.25, 333, 333, 1, 1234.5] >>> print(sorted(a)) [1, 66.25, 333, 333, 1234.5] >>> print(list(reversed(a))) [1234.5, 1, 333, 333, 66.25] >>> print(a[::-1]) [1234.5, 1, 333, 333, 66.25] >>> print(sorted(a, reverse=True)) [1234.5, 333, 333, 66.25, 1] >>> a # input list is untouched [66.25, 333, 333, 1, 1234.5]