Обратный список Python

При работе со списками в 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() .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.



2021-01-05T14:24:35
Python