Посмотреть все уроки курса
Выбрать другой урок из курса
Поиск по сайту
Теория урока

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

В предыдущих уроках вы узнали, как получить срез списка и какие есть основные методы.

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

Пример
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, а так же познакомились с новыми методами и функциями, которые можно использовать для работы со списками. Хотелось написать еще больше, но урок и так оказался объемным, поэтому про конкатенацию и сортировку списков узнаете в следующем уроке.

<
×
>
Раздел «Знакомство с Python»
Урок 1.1. Первое знакомство с Python
Тест 1.2. Небольшой первый тест
Урок 1.3. Переменные и комментарии в Python
Тест 1.4. Тест по основным понятиям и работе с сайтом
Урок 2.1. Погружение в Python
Тест 2.2. Второй вводный тест по Python
Урок 2.3. Типы данных в Python
Урок 2.4. Форматирование строк в Python
Урок 2.5. Условная инструкция if-elif-else в Python
Урок 2.6. Преобразование и проверка типов в Python
Урок 2.7. Вызов методов цепочкой в Python
Урок 3.1. Первое знакомство с циклами в Python
Тест 3.2. Тест по циклам Python
Урок 4.1. Генерируем случайные числа на Python
Тест 4.2. Тест по модулю random Python
Урок 5.1. Структуры данных в Python
Тест 5.2. Тест по структурам Python
Урок 6.1. Списки в Python
Тест 6.2. Тест по спискам Python
Урок 6.3. Изменение списка на месте в Python
Урок 6.4. Дополнительно про списки в Python
Вы здесь
Урок 6.5. Конкатенация и сортировка списков в Python
Тест 6.6. Заключительный тест по спискам в Python
Урок 7.1. Словари в Python
Тест 7.2. Тест по словарям Python
Урок 7.3. Словари и списки: еще глубже
Урок 7.4. Перебор элементов словаря в Python
Урок 7.5. Внутреннее устройство и сортировка словаря в Python
Урок 7.6. Методы словарей и функция len() в Python
Тест 7.7. Заключительный тест по словарям
Урок 8.1. Множества в Python
Урок 8.2. Методы и особенности множеств в Python
Урок 8.3. Отношения между множествами и операции над ними
Тест 8.4. Тест по методам множеств в Python
Тест 8.5. Тест по операциям над множествами в Python
Урок 9.1. Кортежи в Python
Урок 9.2. Более подробно о кортежах в Python
Тест 9.3. Тест по кортежам в Python
Урок 10.1. Контроль хода выполнения программы в Python
Урок 10.2. Цикл while в Python
Урок 10.3. Операторы break, continue и pass в Python
Урок 10.4. Циклы for/else и while/else в Python
Урок 10.5. Обработка исключений (try/except) в Python
Тест 10.6. Тест по циклам и управляющим конструкциям
Тест 10.7. Тест по обработке исключений
Урок 10.8. Что дальше?