Создание списка
В python списки объявляются в квадратных скобках [ ]
z = [3, 7, 4, 2] # Создание списка
Списки хранятся в упорядоченном наборе элементов, которые могут быть разных типов. В списке, указанном выше элементы имеют один и тот же тип int
. Не обязательно все элементы списка должны быть одного типа, как показано выше.
# Создание списка с разными типам данных
heterogenousElements = [3, True, 'Michael', 2.0]
Этот список содержит int
, bool
, string
и float
.
Доступ к элементам в списка
Каждый элемент списка имеет присвоенный ему индекс. Важно отметить, в python индекс первого элемента в списке — 0
z = [3, 7, 4, 2] # создаем список
# обращение к первому элементу списка с индексом 0
print(z[0])
# элемент с индексом 0
3
Python также поддерживает отрицательную индексацию. Отрицательная индексация начинается с конца. Иногда её удобнее использовать для получения последнего элемента в списке, потому что не нужно знать длину списка, чтобы получить доступ к последнему элементу.
# выведите последний элемент в списке
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]
# Все, кроме индекса 3
print(z[:3])
[3, 7, 4]
Код, указанный ниже возвращает список с элементами начиная с индекса 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
Вы также можете указать, откуда начинаете поиск.
print(z.index(4, 3))
3
Метод Count
Метод count
работает так, как звучит. Он считает количество раз, когда значение появляется в списке.
random_list = [4, 1, 5, 4, 10, 4]
print(random_list.count(4))
3
Метод 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']
Метод Append
Метод append
добавляет элемент в конец списка. Это происходит на месте.
z = [7, 4, 3, 2]
z.append(3)
print(z)
[7, 4, 3, 2, 3]
Метод Remove
z = [7, 4, 3, 2, 3]
z.remove(2)
print(z)
[7, 4, 3, 3]
Код удаляет первое вхождение значения 2 из списка z.
Метод Pop
Метод pop
удаляет элемент в указанном индексе. Этот метод также вернет элемент, который был удален из списка. В случае, если вы не указали индекс, он по умолчанию удалит элемент по последнему индексу.
z = [7, 4, 3, 3]
print(z.pop(1))
print(z)
4
[7, 3, 3]
Метод 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]
Метод Insert
insert
вставляет элемент перед указанным индексом.
z = [7, 3, 3, 4, 5]
z.insert(4, [1, 2])
print(z)
[7, 3, 3, 4, [1, 2], 5]
Простые операции над списками
Метод | Описаниее |
---|---|
x in s | True если элемент x находится в списке s |
x not in s | True если элемент 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
Операторы +
и *
для списков
+
объединяет два списка
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