Отличия reverse() от reversed(), sort() от sorted(), copy() от deepcopy()
1. reverse() vs reversed()
reverse() vs reversed()list.reverse()
Разворачивает список на месте
None
Да
reversed(seq)
Возвращает итератор с элементами в обратном порядке
Итератор
Нет (исходный объект не меняется)
Пример:
lst = [1, 2, 3]
lst.reverse()
print(lst) # [3, 2, 1]
lst2 = [1, 2, 3]
rev = reversed(lst2)
print(list(rev)) # [3, 2, 1]
print(lst2) # [1, 2, 3] - исходный список не изменился2. sort() vs sorted()
sort() vs sorted()list.sort()
Сортирует список на месте
None
Да
sorted(iterable)
Возвращает новый отсортированный список
Новый список
Нет (исходный объект не меняется)
Пример:
3. copy() vs deepcopy()
copy() vs deepcopy()copy.copy(obj)
Создаёт поверхностную копию объекта
Если объект содержит вложенные объекты, они не копируются, а остаются ссылками
copy.deepcopy(obj)
Создаёт глубокую копию объекта
Вложенные объекты тоже копируются, полностью независимая структура
Пример:
💡 Вывод:
reverse()иsort()— методы, изменяют объект на месте.reversed()иsorted()— функции, возвращают новый объект, исходный не меняют.copy()— поверхностная копия, вложенные объекты остаются общими.deepcopy()— полная независимая копия, включая вложенные объекты.
Last updated
Was this helpful?