Введение
При работе со списками в Python иногда может потребоваться инвертировать элементы списка. Инвертирование списка означает, что первый элемент списка становится последним, второй становится предпоследним, последний элемент становится первым и так далее.
В Python есть несколько способов перевернуть список, в зависимости от того, что вы пытаетесь сделать.
Обратный () метод
reverse()
— это метод типа списка, который меняет местами элементы списка. Этот метод изменяет исходный список вместо создания нового.
Синтаксис метода reverse()
следующий:
list.reverse()
reverse()
не принимает аргументов.
Вот пример:
capitals = ['Oslo', 'Skopje', 'Riga', 'Madrid']
capitals.reverse()
print('Reversed list:', capitals)
Reversed list: ['Madrid', 'Riga', 'Skopje', 'Oslo']
Обратная () функция
reversed()
— это встроенная функция Python, которая возвращает инвертированный итератор заданного итерируемого объекта. Первоначальный список не изменился.
Если вы просто хотите перебирать элементы списка в обратном порядке, вы можете использовать функцию reversed()
, так как она быстрее.
Синтаксис функции reversed()
следующий:
reversed(seq)
Где находится seq
последовательностей, который вы хотите восстановить.
Вот пример, в котором используется reversed()
для перебора элементов списка в обратном порядке:
numbers = [1, 2, 3, 4]
for i in reversed(numbers):
print(i)
4
3
2
1
Если вы хотите преобразовать инвертированный итератор в список, используйте конструктор list()
:
numbers = [1, 2, 3, 4]
print(list(reversed(numbers)))
[4, 3, 2, 1]
Инвертировать список с помощью Slicing
Нотация среза — это встроенная функция Python, позволяющая извлекать части последовательного типа данных. Вы можете использовать нотацию [::-1]
вместо списка:
numbers = [1, 2, 3, 4]
print(numbers[::-1])
Результатом вырезания списка является новый список, содержащий извлеченные элементы. Первоначальный список не изменился.
[4, 3, 2, 1]
Вывод
Чтобы изменить позиции списка Python, используйте метод reverse()
. Если вам просто нужно создать инвертированный итератор, используйте функцию reversed()
.