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

43465

Как в python создать список

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

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

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

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

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

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

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

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

3

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

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

2

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

print(z[3])

2

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

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

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

Метод List Index

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

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

0

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

print(z.index(4, 3))

3

list index

Метод List Count

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

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

3

Метод List Sort

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

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

z = [3, 7, 4, 2]
z.sort()
print(z)

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

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

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

[7, 4, 3, 2]

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

# Сортировка списка строками
names = ['Steve', 'Rachel', 'Michael', 'Adam', 'Jessica', 'Lester']
names.sort()
print(names)

['Adam', 'Jessica', 'Lester', 'Michael', 'Rachel', 'Steve']

Метод List Append

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

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

z = [7, 4, 3, 2]
z.append(3)
print(z)

[7, 4, 3, 2, 3]

Метод List Remove

метод remove
Метод remove удаляет первое вхождение значения в списке.
z = [7, 4, 3, 2, 3]
z.remove(2)
print(z)

[7, 4, 3, 3]

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

Метод List Pop

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

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

z = [7, 4, 3, 3]
print(z.pop(1))
print(z)

4
[7, 3, 3]

Метод List Extend

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

z = [7, 3, 3]
z.extend([4,5])
print(z)

[7, 3, 3, 4, 5]

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

print([1,2] + [3,4])

[7, 3, 3, 4, 5]

Метод List 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 результат.

22 not in list1

False

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

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

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

1 2 3 4 5

Как преобразовать список в строку

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

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

spam, ham, eggs

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

print('\n'.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

Если выполнить код ниже, каков будет результат?
Какая функция удаляет объект из списка?
Что вернет следующий код?
Что выведет этот код?
Верно ли данное утверждение: "В Python есть два типа чисел: целые числа и числа с плавающей точкой"?