Отличия reverse() от reversed(), sort() от sorted(), copy() от deepcopy()
В Python есть несколько методов и функций для изменения и копирования списков и других коллекций данных. Вот отличия между ними:
reverse()
иreversed()
:reverse()
: Это метод, который вызывается непосредственно на списке и изменяет порядок элементов в списке, переворачивая его в обратном порядке.my_list = [1, 2, 3, 4] my_list.reverse() print(my_list) # Выведет [4, 3, 2, 1]
reversed()
: Это функция, которая возвращает итератор, представляющий элементы в обратном порядке, но не изменяет исходный список.my_list = [1, 2, 3, 4] reversed_list = list(reversed(my_list)) print(reversed_list) # Выведет [4, 3, 2, 1]
sort()
иsorted()
:sort()
: Это метод, вызываемый непосредственно на списке, который сортирует элементы в списке в порядке возрастания (по умолчанию) и изменяет исходный список.my_list = [4, 1, 3, 2] my_list.sort() print(my_list) # Выведет [1, 2, 3, 4]
sorted()
: Это функция, которая возвращает новый отсортированный список, не изменяя исходный список.my_list = [4, 1, 3, 2] sorted_list = sorted(my_list) print(sorted_list) # Выведет [1, 2, 3, 4]
copy()
иdeepcopy()
:copy()
: Этот метод или функция создает поверхностную копию списка, что означает, что она копирует ссылки на объекты в списке, но не копирует объекты сами по себе. Если объекты в списке изменяются, это также отразится на копии.import copy my_list = [1, [2, 3], 4] shallow_copy = copy.copy(my_list)
deepcopy()
: Этот метод или функция создает глубокую копию списка, что означает, что она копирует как список, так и все объекты, на которые он ссылается. Изменения в исходном списке не влияют на глубокую копию.import copy my_list = [1, [2, 3], 4] deep_copy = copy.deepcopy(my_list)
Last updated
Was this helpful?