
При работе со списками в 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, позволяющая извлекать части последовательного типа данных. Хотя это и не совсем типично для Python, вы можете использовать нотацию [::-1] для переворота списка:
numbers = [ 1 , 2 , 3 , 4 ] print ( numbers [:: - 1 ])
Результатом нарезки списка является новый список, содержащий извлечённые элементы. Исходный список не изменяется.
[4, 3, 2, 1]
Заключение
Чтобы перевернуть список Python на месте, используйте метод reverse() . Если вам нужно создать только обратный итератор, используйте функцию reversed() .
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства