Share This
Связаться со мной
Крути в низ
Categories
//Как перевернуть список в Python

Как перевернуть список в Python

01.12.2021Category : Python

В этом руководстве мы расскажем, как перевернуть список в Python. Мы разберем несколько разных способов реверсирования списков и диапазонов списков на примерах.

Итак, давайте начнем!

От редакции Pythonist. Также рекомендуем статью «Как перевернуть строку в Python».

Как создать диапазон элементов в Python

Наиболее простой и эффективный способ создать диапазон чисел в Python – использовать встроенную функцию range().

Чтобы создать список с диапазоном чисел, мы воспользуемся функцией list() и внутри нее укажем функцию range().

Функция range() принимает до трех параметров – это параметры start, stop и step, при этом общий синтаксис выглядит так:

range(start, stop, step)

Параметр start – это число, с которого начнется отсчет. По умолчанию данный параметр равен 0. Таким образом, мы формируем наш диапазон, начиная с нулевого элемента.

Параметр stop – это число, на котором счет будет остановлен. Важно отметить, что последнее число, которое войдет в диапазон – stop-1.

И последний параметр — step. Это число, которое определяет, как числа будут увеличиваться. То есть с каким шагом мы будем идти. По умолчанию, step=1, то есть мы перебираем числа одно за другим.

Из этих трех параметров обязательным является только stop, остальные указываются опционально.

Если вы передаете функции range() только параметр stop, по умолчанию отсчет начнется с 0, а закончится на одно число перед указанным вами.

Рассмотрим пример, чтобы лучше понять, как это работает:

# Создать список чисел,начинающийся с 0  # и заканчивающийся на 3 (не 4).  my_range = list(range(4))  print(my_range) #output #[0, 1, 2, 3]

А вот так будет выглядеть пример, если передать сразу все 3 аргумента:

# Создать список чисел: # начинающийся с 0 # заканчивающийся на 9 # и чтобы счет инкрементировался на 1  my_range = list(range(0, 10, 1))  # Вывести в консоль print(my_range)  # Результат: # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]  # Узнать тип при помощи встроенного метода type() print(type(my_range))  #output #<class 'list'>

Ещё раз заметим, что в данном случае параметры start и step можно было не передавать, так как они по умолчанию и так равны 0 и 1 соответственно.

kak perevernut spisok v python 184940d - Как перевернуть список в Python

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

Скачать ×

Как перевернуть диапазон в Python

Чтобы перевернуть диапазон чисел в Python с помощью функции range(), можно использовать отрицательный шаг, например -1. То есть в качестве третьего параметра step вы передаете отрицательное число. Тогда в результате мы получим исходный диапазон в обратном порядке.

В приведенном ниже примере создается список из диапазона чисел от 9 до -1. Однако последнее число мы не включаем, поэтому последним элементом диапазона будет ноль. А шаг равен -1, то есть мы пойдем в обратную сторону, перебирая все числа одно за другим.

my_range = list(range(9, -1, -1))  print(my_range) # Результат: # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]  print(type(my_range)) # <class 'list'>

Для того, чтобы переворачивать диапазоны в рамках функции range(), нужно передавать все три аргумента: start, stop и step. При этом step обязательно должен быть отрицательным.

Как перевернуть массив в Python

В программировании массив – это упорядоченный набор элементов, каждый из которых имеет один и тот же тип данных.

Каждый элемент в массиве имеет собственный порядковый номер (индекс).

Однако, в отличие от других языков программирования, в Python массивы не являются встроенной структурой данных. Для работы с массивами их нужно импортировать из сторонних библиотек (Numpy).

Вместо этого мы используем списки. А для поворота списков Python предлагает несколько способов. Давайте их рассмотрим!

Как перевернуть список в Python с помощью метода .reverse()

При использовании данного встроенного метода в Python список изменяется сразу же. Это означает, что изменяется исходный порядок данного списка.

Первоначальный порядок элементов исходного списка изменяется и тут же обновляется.

Например, предположим, что у нас есть следующий список:

# Исходный список my_list = [10,20,30,40,50]  print("My initial list is: ",my_list)  # Результат: # My initial list is:  [10, 20, 30, 40, 50]

Чтобы изменить порядок элементов списка my_list на 50, 40, 30, 20, 10, выполним следующее:

# Исходный список my_list = [10,20,30,40,50]  # Перевернуть порядок элементов my_list.reverse()  print("This is what the list looks like now: ", my_list)  # Результат: # This is what the list looks like now:  [50, 40, 30, 20, 10]

Как видно из результата, начальный порядок списка теперь изменился, а элементы внутри него теперь стоят в обратном порядке.

Как перевернуть список в Python с помощью срезов

Срезы работают аналогично функции range(), которую мы разобрали ранее.

Срез также включает в себе три параметра: start, stop и step.

Синтаксис выглядит следующим образом: [start:end:step].

К примеру, давайте рассмотрим такой случай:

my_list = [10,20,30,40,50]  my_list2 = my_list[1:3:1]  print(my_list2)  # Результат #[20, 30]

В приведенном выше примере мы хотели получить каждый элемент из исходного списка, начиная с индекса 1 до индекса 3 (но не включая его!).

Примечание. Индексирование в Python начинается с 0, поэтому первый элемент имеет индекс 0, второй элемент имеет индекс 1 и так далее.

Если вы хотите вывести все элементы, вы можете использовать один из двух следующих способов:

my_list = [10,20,30,40,50]  my_list2 = my_list[:]  # или...  my_list2 = my_list[::]  # Вывести в консоль print(my_list2)  # Результат # 10, 20, 30, 40, 50]

Итак, мы поняли, как использовать срезы для вывода всех элементов, содержащихся в списке.

Теперь, давайте разберемся, как же перевернуть наш список, используя срезы. Всё просто – давайте добавим шаг. И точно так же, как и с функцией range(), сделаем его отрицательным.

В данном случае мы используем два двоеточия для вывода всех элементов от начала и до самого конца и отрицательный шаг для того, чтобы элементы были в обратном порядке.

Рассмотрим на примере, как это работает:

my_list = [10,20,30,40,50]  my_list2 = my_list[::-1]  print(my_list2)  # Результат # [50, 40, 30, 20, 10]

В этом случае мы создаем новый список my_list2, при этом порядок исходного списка не изменяется.

Как перевернуть список в Python с помощью функции reversed()

Важно! Не путайте функцию reversed() с методом .reverse()!

Встроенная функция reversed() меняет порядок элементов списка на противоположный и позволяет нам обращаться к каждому элементу по отдельности.

К примеру, возьмем следующий список my_list:

my_list = [10,20,30,40,50]  for num in reversed(my_list):      print(num)      # Результат #50 #40 #30 #20 #10

Функция reversed() принимает список в качестве аргумента и возвращает нам исходные элементы, только в обратном порядке.

Если вы хотите сохранить возвращаемое значение из функции reversed() для дальнейшего использования, то нужно преобразовать результат в список с помощью функции list(). Далее необходимо присвоить получившееся выражение переменной, в нашем случае my_new_list.

# Исходный список my_list = [10,20,30,40,50]  # Используем функцию reversed() для изменения порядка элементов my_list # Сохраняем новый список, который создается, в переменную my_new_list my_new_list = list(reversed(my_list))  print(my_new_list) # Результат # [50, 40, 30, 20, 10]

Теперь в переменной my_new_list хранится перевёрнутый список my_list.

Важно заметить, что основное отличие метода .reverse() и функции reversed() заключается в том, что метод .reverse() меняет непосредственно исходный список. В то время как функция reversed() не изменяет сам исходный список, и полученное новое значение следует сохранять в новую переменную.

Заключение

Вот и все – теперь вы знаете основы работы с реверсированными списками в Python!

Мы подробно и на примерах разобрали, как перевернуть список в Python. Надеемся, что данная статья была вам полезной. Спасибо за чтение и успехов в написании кода!

Перевод статьи «Python Reverse List – How to Reverse a Range or Array».

kak perevernut spisok v python 9daecde - Как перевернуть список в Python

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

Скачать ×

  • 1 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

    Связаться со мной
    Close