Списки python — функции и методы Python list()

Как создать список?

Списки объявляются в квадратных скобках [ ].

Список в python
Вторая строка этой таблицы списка python — индекс элемента списка.
z = [3, 7, 4, 2]  # Создание списка

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

# Создание списка с разными типам данных 
heterogenousElements = [3, True, 'Витя', 2.0] 

Этот список содержит int, bool, string и float.

Доступ к элементам списка

Каждый элемент имеет присвоенный ему индекс. Важно отметить, в python индекс первого элемента в списке — 0.

Элементы списка
Элемент с индексом 0 (выделен синим)
z = [3, 7, 4, 2]  # создаем список 
# обращение к первому элементу списка с индексом 0
print(z[0]) 
# элемент с индексом 0 -> 3

Также поддерживается отрицательная индексация. Отрицательная индексация начинается с конца. Иногда её удобнее использовать для получения последнего элемента в списке, потому что не нужно знать длину списка, чтобы получить доступ к последнему элементу.

Отрицательная индексация списка
Элемент с индексом -1 (выделен синим)
# выведите последний элемент списка 
>>> print(z[-1])
2

Вы также можете получить доступ к одному и тому же элементу с использованием положительных индексов (как показано ниже). Альтернативный способ доступа к последнему элементу в списке z.

Срезы(slice) списка

Срезы хороши для получения подмножества значений с вашего списка. На примере кода, приведенного ниже, он вернет список с элементами из индекса 0 и не включая индекс 2.

Срезы списка
Первый индекс пишется (до : включительно), а последний (после : ) и не учитывается
# Создайте список
z = [3, 7, 4, 2]
# Вывод элементов с индексом от 0 до 2 (не включая 2)
print(z[0:2]) 
# вывод: [3, 7]
Срезы списка 2
# Все, кроме индекса 3
>>> print(z[:3])
[3, 7, 4]
Срезы списка 3

Код, указанный ниже возвращает список с элементами начиная с индекса 1 до конца.

# начиная с индекса 1 до конца списка
>>> print(z[1:])
[7, 4, 2]

Изменение элементов в списке

Изменение списка


Списки в Python изменяемы. Это означает, что после создания списка можно обновить его отдельные элементы.

z = [3, 7, 4, 2]  # Создание списка
# Изменяем элемент с индексом 1 на строку 'fish'
z[1] = 'fish'
print(z)
[3, 'fish', 4, 2]

Методы и функции списков python

У списков Python есть разные методы, которые помогают в программировании. В этом разделе рассматриваются все методы списков.

Метод Index

Метод index возвращает положение первого индекса, со значением х. В указанном ниже коде, он возвращает назад 0.

# Создайте список
>>> z = [4, 1, 5, 4, 10, 4]
>>> print(z.index(4))
0
Индексы списка

Вы также можете указать, откуда начинаете поиск.

list index

Метод Count

Метод count работает так, как звучит. Он считает количество раз, когда значение появляется в списке.

>>> random_list = [4, 1, 5, 4, 10, 4]
>>> print(random_list.count(4))
3

Метод Sort

метод sort
Сортировка списка — фактическим кодом будем: z.sort()

Метод sort сортирует и меняет исходный список.

[2, 3, 4, 7]
Обратная сортировка списка
Сортировка списка с наибольшего значения к наименьшему

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

# Сортировка и изменение исходного списка от наивысшего к наименьшему
z.sort(reverse = True)
print(z)
[7, 4, 3, 2]

Следует отметить, что вы также можете отсортировать список строк от А до Я (или A-Z) и наоборот.

# Сортировка списка строками
names = ["Стив", "Рейчел", "Майкл", "Адам", "Джессика", "Лестер"]
names.sort()
print(names)
['Адам', 'Джессика', 'Лестер', 'Майкл', 'Рейчел', 'Стив']

Метод Append

list append
Добавьте значение 3 в конец списка

Метод append добавляет элемент в конец списка. Это происходит на месте.

[7, 4, 3, 2, 3]

Метод Remove

метод remove
Метод remove удаляет первое вхождение значения в списке.

Код удаляет первое вхождение значения 2 из списка z.

[7, 4, 3, 3]

Метод Pop

метод pop
z.pop(1) удаляет значение в индексе 1 и возвращает значение 4

Метод pop удаляет элемент в указанном индексе. Этот метод также вернет элемент, который был удален из списка. В случае, если вы не указали индекс, он по умолчанию удалит элемент по последнему индексу.

4
[7, 3, 3]

Метод Extend

Метод Extend

Метод extend расширяет список, добавляя элементы. Преимущество над append в том, что вы можете добавлять списки.
Добавим [4, 5] в конец z:

[7, 3, 3, 4, 5]

То же самое можно было бы сделать, используя +.

Метод Insert

метод insert
Вставляет [1,2] с индексом 4

Метод insert вставляет элемент перед указанным индексом.

z = [7, 3, 3, 4, 5]
z.insert(4, [1, 2])
print(z)
[7, 3, 3, 4, [1, 2], 5]

Простые операции над списками

МетодОписаниее
x in sTrue если элемент x находится в списке s
x not in sTrue если элемент x не находится в списке s
s1 + s2Объединение списков s1 и s2
s * n , n * sКопирует список s n раз
len(s)Длина списка s, т.e. количество элементов в s
min(s)Наименьший элемент списка s
max(s)Наибольший элемент списка s
sum(s)Сумма чисел списка s
for i in list()Перебирает элементы слева направо в цикле for

Примеры использование функций со списками:

>>> list1 = [2, 3, 4, 1, 32]
>>> 2 in list1  # 2 в list1?
True
>>> 33 not in list1  # 33 не в list1?
True
>>> len(list1)  # количество элементов списка
5
>>> max(list1)  # самый большой элемент списка
32
>>> min(list1)  # наименьший элемент списка
1
>>> sum(list1)  # сумма чисел в списке
42
# генератор списков python (list comprehension)
>>> x =  [i for i in range(10)]
>>> print(x)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print(list1.reverse()) # разворачивает список
[32, 1, 4, 3, 2]

Операторы + и * для списков

+ объединяет два списка.

list1 = [11, 33]
list2 = [1, 9]
list3 = list1 + list2
print(list3)
[11, 33, 1, 9]

* копирует элементы в списке.

list4 = [1, 2, 3, 4]
list5 = list4 * 3
print(list5)
[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]

Оператор in и not in

Оператор in проверяет находится ли элемент в списке. При успешном результате он возвращает True, в случае неудачи, возвращает False .

>>> list1 = [11, 22, 44, 16, 77, 98]
>>> 22 in list1
True

Аналогично not in возвращает противоположный от оператора in результат.

Итерация по списку с использованием цикла for

Список — последовательность. Ниже способ, которые вы можете использовать для цикла, чтобы перебрать все элементы списка.

list1 = [1,2,3,4,5]
for i in list1:
    print(i, end=" ")
1 2 3 4 5

Преобразование списка в строку

Как преобразовать список в строку?
Для преобразования списка в строку используйте метод join(). В Python это выглядит так:
",".join(["a", "b", "c"]) -> "a,b,c".
Разделитель пишут в кавычках перед join, в список должен состоять из строк.

Вот несколько полезных советов для преобразования списка в строку (или любого другого итерабельного, такого как tuple).

Во-первых, если это список строк, вы можете просто использовать join() следующим образом.

mylist = ['spam', 'ham', 'eggs']
print(', '.join(mylist))
spam, ham, eggs

Используя тот же метод, вы можете также сделать следующее:

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

list_of_ints = [80, 443, 8080, 8081]
print(str(list_of_ints).strip('[]'))
80, 443, 8080, 8081

Или же этот, если ваши объекты содержат квадратные скобки:

>>> print(str(list_of_ints)[1:-1])
80, 443, 8080, 8081

В конце концов, вы можете использовать map() чтобы преобразовать каждый элемент в список строки и затем присоединиться к ним:

>>> print(', '.join(map(str, list_of_ints)))
80, 443, 8080, 8081
>>> print('\n'.join(map(str, list_of_ints)))
80
443
8080
8081

Тест на знание списков в Python

Как создать список?
Что выведет этот код:
a = [ 1, 342, 223, 'Африка', 'Очки']
print(a[-3])
Что выведет этот код:
sample = [10, 20, 30]
sample.append(60)
sample.insert(3, 40)
print(sample)
Что выведет этот код:
lake = ["Python", 51, False, "22"]
lake.reverse()
lake.reverse()
print(lake[-2])
Что из перечисленного правда?
Как получить ['bar', 'baz'] из списка
a = ['foo', 'bar', 'baz', 'qux', 'quux']
?
Как получить 'bar' из списка
x = [10, [3.141, 20, [30, 'baz', 2.718]], 'foo']
?
Как избавиться от "3" в списке a = [1, 3, 5] и получить [1, 5]?
С помощью какого метода можно добавить сразу два элемента в список?
Что вернет этот код [1, 2] * 3?

Подписывайтесь на канал в Дзене

Полезный контент для начинающих и опытных программистов в канале Лента Python разработчика — Как успевать больше, делать лучше и не потерять мотивацию.

Обучение Python и Data Science

Профессия Data Scientist

Профессия Data Scientist

11 520 5 760 ₽/мес.
Профессия Python-разработчик

Профессия Python-разработчик

7 820 3 910 ₽/мес.
Профессия Python Fullstack

Профессия Python Fullstack

7 820 3 910 ₽/мес.
Курс Аналитик данных с нуля

Курс Аналитик данных с нуля

6 500 3 900 ₽/мес.

Появились вопросы? Задайте на Яндекс.Кью

У сайта есть сообщество на Кью >> Python Q <<. Там я, эксперты и участники отвечаем на вопросы по python и программированию.