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