Codebra
29 января 2026 в 18:33

Урок 20. Дополнительно про списки в Python

Что такое обратное индексирование в Python и про методы index, clear, reverse, count.
📝

Внимание! На этой странице вы найдете материал урока из архивного курса по Python. Курс был написан в 2024 году и по-прежнему актуален для начинающих разработчиков.

Теоретический материал сохранен в исходном виде, а практические задания с автоматической проверкой вынесены в отдельные интенсивы и задания.

Полный список уроков доступен по тегу Архивный курс по Python и на странице первого урока.

📝 Кратко
  • В этом уроке вы узнаете про обратное индексирование, познакомитесь с методами index, clear, reverse, count и другими.
  • Для примера работы методов были использованы списки, состоящие из чисел.
  • Не забывайте, списки могут содержать любые объекты: числа, строки, другие списки и вообще все что угодно.
  • Список может быть неоднородным.
  • Элементы списка можно вызывать не только с начала, но и с конца: обратное индексирование.
  • В отличие от обычного индексирования, обратное начинается не с 0, а с -1.
  • Обратное индексирование очень полезно в некоторых ситуациях и повышает эффективность кода.
  • Например, в большом списке с изменяемой длиной вам не придется считать элементы с самого начала, чтобы добраться до последнего.
  • Метод index() используется для определения индекса элемента по его значению.
  • Метод clear() очищает весь список.
  • Метод reverse() меняет порядок следования элементов списка на обратный.
  • Метод count() подсчитывает количество вхождений элемента в список.
  • Функции min() и max() возвращают минимальное и максимальное значения из списка соответственно.
  • Метод snuffle() из модуля random перемешивает элементы списка в случайном порядке.

В предыдущих уроках вы узнали, как получить срез списка и какие есть основные методы. В этом уроке вы узнаете про обратное индексирование, познакомитесь с методами indexclearreversecount и другими. Для примера работы методов были использованы списки, состоящие из чисел. Но не забывайте, что списки могут содержать любые объекты: числа, строки, другие списки и вообще все что угодно. При этом список может быть неоднородным:

a = [1, 'Hello', [2, 3, 4], 2]

Элементы списка можно вызывать не только с начала, но и с конца: обратное индексирование. В отличие от обычного индексирования, обратное начинается не с 0, а с -1. Например:

a = [1, 2, 3, 4, 5]
a[-1] # => 5 

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

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

a = [1, 2, 3, 4, 5]
a.index(2) # => 1  

Если вы передадите несуществующее значение, то будет вызвано исключение ValueError, но об исключениях вы узнаете позднее.

Как удалить конкретный элемент списка вы узнали из этого урока. А как очистить весь список? Для этого есть метод clear().

a = [1, 2, 3, 4, 5]
a.clear() # => []

Список можно развернуть, то есть изменить порядок следования элементов на обратный при помощи метода reverse().

a = [1, 2, 3, 4, 5]
a.reverse() # => [5, 4, 3, 2, 1] 

Чтобы посчитать, как часто встречается элемент в списке, можно использовать метод count(). Он возвращает 0, если такого элемента нет в списке.

a = [1, 2, 2, 2, 5]
a.count(2) # => 3  

До этого момента мы рассматривали методы списков. Далее взглянем на функции, которые применимы к спискам. Что такое функции и методы и в чем их различия мы еще поговорим позднее, а сейчас достаточно знать, что методы вызываются с помощью оператора точка (.), например:

words.reverse()

Где words является списком, а reverse() – методом. Функция выглядит следующим образом:

sum(words)

Где words является списком, а sum – функцией.

Соглашусь, объяснение является поверхностным и не совсем корректным. Еще раз повторю, что об этом будем говорить позже, после чего вы можете вернуться к этому уроку и взглянуть на него другими глазами.

Кстати, в примере выше была использована функция sum(), которая возвращает общую сумму чисел в списке. Если в списке есть что-то, кроме чисел, то функцию sum, как вы понимаете, использовать нельзя.

Так же есть функции min() и max(), которые возвращают минимальное и максимальное значение из списка, соответственно.

Напоследок вспомним про урок, где мы генерировали случайные числа. Предположим, вам необходимо перемешать элементы списка, для чего необходимо подключить модуль random и использовать метод snuffle() из этого модуля.

import random
a = [1, "Hello", [3, 6, 7], 4, 5]
random.shuffle(a) # ~=> [5, 'Hello', 4, 1, [3, 6, 7]]

Обратите внимание, список является неоднородным и элемент с индексом 2 является другим списком. После применения метода snuffle() элементы списка перемешаются в случайном (точнее псевдослучайном) порядке, но элементы списка [3, 6, 7] не будут перемешаны.

Из этого урока вы узнали об обратном индексировании списков в Python, а так же познакомились с новыми методами и функциями, которые можно использовать для работы со списками. Хотелось написать еще больше, но урок и так оказался объемным, поэтому про конкатенацию и сортировку списков узнаете в следующем уроке.

📝

Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу Python.