При работе со списками в Python иногда может потребоваться перевернуть элементы списка. Обратное преобразование списка означает, что первый элемент списка становится последним, второй – предпоследним, последний элемент становится первым и так далее.
В Python есть несколько разных способов перевернуть список, в зависимости от того, что вы пытаетесь сделать.
reverse() – это метод типа данных списка, который меняет местами элементы списка. Этот метод изменяет исходный список, а не создает новый.
Синтаксис метода reverse() следующий:
list.reverse()
reverse() не принимает аргументы.
Вот пример:
capitals = ['Краснодар', 'Москва', 'Ростов', 'Минск'] capitals.reverse() print('Обратный список:', capitals)
Обратный список: ['Минск', 'Ростов', 'Москва', 'Краснодар']
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().
Если у вас есть вопросы или отзывы, не стесняйтесь оставлять комментарии.