>>>> numbers = [2, 1, 4.0, 3]
>>>> numbers.sort()
>>>> numbers
>[1, 2, 3, 4.0]
По умолчанию список сортируется по возрастанию, но вы можете добавить аргумент reverse=True, чтобы отсортировать список по убыванию:
>>>> numbers = [2, 1, 4.0, 3]
>>>> numbers.sort(reverse=True)
>>>> numbers
>[4.0, 3, 2, 1]
Присваивание с помощью оператора =, копирование с помощью функции copy()
Если вы присваиваете один список более чем одной переменной, изменение списка в одном месте повлечет за собой его изменение в остальных, как показано далее:
>>>> a = [1, 2, 3]
>>>> a
>[1, 2, 3]
>>>> b = a
>>>> b
>[1, 2, 3]
>>>> a[0] = 'surprise'
>>>> a
>['surprise', 2, 3]
Что же находится в переменной b? Ее значение все еще равно [1, 2, 3] или изменилось на ['surprise', 2, 3]? Проверим:
>>>> b
>['surprise', 2, 3]
Помните аналогию со стикерами в главе 2? b просто ссылается на тот же список объектов, что и а, поэтому, независимо от того, с помощью какого имени мы изменяем содержимое списка, изменение отразится на обеих переменных:
>>>> b
>['surprise', 2, 3]
>>>> b[0] = 'I hate surprises'
>>>> b
>['I hate surprises', 2, 3]
>>>> a
>['I hate surprises', 2, 3]
Вы можете скопировать значения в независимый новый список с помощью одного из следующих методов:
• функции copy();
• функции преобразования list();
• разбиения списка [: ].
Оригинальный список снова будет присвоен переменной а. Мы создадим b с помощью функции списка copy(), c — с помощью функции преобразования list(), а d — с помощью разбиения списка:
>>>> a = [1, 2, 3]
>>>> b = a.copy()
>>>> c = list(a)
>>>> d = a[: ]
Опять же b, c и d являются копиями a — это новые объекты, имеющие свои значения, не связанные с оригинальным списком объектов [1, 2, 3], на который ссылается a. Изменение a не повлияет на копии b, c и d:
>>>> a[0] = 'integer lists are boring'
>>>> a
>['integer lists are boring', 2, 3]
>>>> b
>[1, 2, 3]
>>>> c
>[1, 2, 3]
>>>> d
>[1, 2, 3]