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

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

Похожие уроки и записи блога

Обработка исключений (try/except) в PythonЗнакомство с Python
Первое знакомство с PythonЗнакомство с Python
Типы данных в PythonЗнакомство с Python
Еще о возможностях модулей в Python Знакомство с Python
Написание модулей в PythonЗнакомство с Python
Конкатенация и сортировка списков в PythonЗнакомство с Python
Основы функций в PythonЗнакомство с Python
Функциональное программирование: map, filter и reduceЗнакомство с Python
Структуры данных в PythonЗнакомство с Python
<
×
>
Раздел «Знакомство с Python»
1. УРОК: Первое знакомство с Python
2. ТЕСТ: Небольшой первый тест по Python
3. УРОК: Переменные и комментарии в Python
4. ТЕСТ: Тест по основным понятиям и работе с сайтом
Самые основы
5. УРОК: Погружение в Python
6. ТЕСТ: Второй вводный тест по Python
7. УРОК: Типы данных в Python
8. УРОК: Форматирование строк в Python
9. УРОК: Условная инструкция if-elif-else в Python
10. УРОК: Преобразование и проверка типов в Python
11. УРОК: Вызов методов цепочкой в Python
Циклы
12. УРОК: Первое знакомство с циклами в Python
13. ТЕСТ: Тест по циклам Python
Немного рандома
14. УРОК: Генерируем случайные числа на Python
15. ТЕСТ: Тест по модулю random Python
Структуры данных
16. УРОК: Структуры данных в Python
17. ТЕСТ: Тест по структурам Python
Списки
18. УРОК: Списки в Python
19. ТЕСТ: Тест по спискам Python
20. УРОК: Изменение списка на месте в Python
УРОК 21. Дополнительно про списки в Python
Вы здесь
22. УРОК: Конкатенация и сортировка списков в Python
23. ТЕСТ: Заключительный тест по спискам в Python
Словари
24. УРОК: Словари в Python
25. ТЕСТ: Тест по словарям Python
26. УРОК: Словари и списки: еще глубже
27. УРОК: Перебор элементов словаря в Python
28. УРОК: Внутреннее устройство и сортировка словаря в Python
29. УРОК: Методы словарей и функция len() в Python
30. ТЕСТ: Заключительный тест по словарям
Множества
31. УРОК: Множества в Python
32. УРОК: Методы и особенности множеств в Python
33. УРОК: Отношения между множествами и операции над ними
34. ТЕСТ: Тест по методам множеств в Python
35. ТЕСТ: Тест по операциям над множествами в Python
Кортежи
36. УРОК: Кортежи в Python
37. УРОК: Более подробно о кортежах в Python
38. ТЕСТ: Тест по кортежам в Python
Снова циклы и немного исключений
39. УРОК: Контроль хода выполнения программы в Python
40. УРОК: Цикл while в Python
41. УРОК: Операторы break, continue и pass в Python
42. УРОК: Циклы for/else и while/else в Python
43. УРОК: Обработка исключений (try/except) в Python
44. ТЕСТ: Тест по циклам и управляющим конструкциям
45. ТЕСТ: Тест по обработке исключений
Работаем с файлами
46. УРОК: Работа с файлами в Python
47. УРОК: Оператор with/as для работы с файлами в Python
48. ТЕСТ: Тест по работе с файлами в Python
Итераторы
49. УРОК: Итераторы в Python
50. УРОК: List/dict/set comprehensions (включения) в Python
51. ТЕСТ: Тест по включениям в Python
Функции
52. УРОК: Основы функций в Python
53. ТЕСТ: Тест по основам функций в Python
54. УРОК: Область видимости в Python
55. ТЕСТ: Тест по области видимости в Python
56. УРОК: Замыкания и оператор nonlocal в Python
57. ТЕСТ: Тест по замыканиям и nonlocal в Python
58. УРОК: Аргументы и параметры функций, операторы * и ** в Python
59. ТЕСТ: Тест по аргументам и параметрам функций в Python
60. ТЕСТ: Тест по операторам * и ** в Python
61. УРОК: Анонимные функции: выражения lambda
62. УРОК: Функциональное программирование: map, filter и reduce
63. ТЕСТ: Тест по парадигме функционального программирования
64. УРОК: Генераторы и оператор yield в Python
65. ТЕСТ: Тест по генераторным функциям и выражениям
Модули
66. УРОК: Модули в Python
67. УРОК: Написание модулей в Python
68. УРОК: Пакеты модулей в Python
69. УРОК: Еще о возможностях модулей в Python
70. ТЕСТ: Тест по модулям и пакетам в Python
Объектно-ориентированное программирование
71. УРОК: Основы объектно-ориентированного программирования (ООП) в Python
72. ТЕСТ: Тест по основам ООП в Python
73. УРОК: Основы написания классов в Python
74. УРОК: Продолжаем написание классов в Python
75. УРОК: Более глубокое изучение классов в Python
76. УРОК: Что дальше?
Впервые на сайте Codebra?

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

Образовательный ресурс codebra.ru полностью посвящен программированию. Все курсы и уроки находятся на главной странице. Ради интереса можете посмотреть на содержимое курсов по Python, HTML и CSS, JavaScript, C++ и другие, размещенные на главной странице.

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

Удачи в обучении!

Закрыть окно