Python предлагает ряд составных типов данных, часто называемых последовательностями. Список является одним из наиболее популярных и очень универсальных типов данных, используемых в Python.
Как создать список?
В программировании на Python список создается путем помещения всех элементов в квадратные скобки [], при этом каждый элемент отделяется от другого запятой.
Список может иметь любое количество элементов, и они могут быть разных типов (целое число, число с плавающей запятой, строка и т.д.).
# пустой список my_list = [] # сипсок чисел my_list = [1, 2, 3] # список элементов имеющих разный тип данных my_list = [1, "Hello", 3.4]
Кроме того, список может содержать в себе другой список как элемент. Это называется вложенным (многоуровневым) списком.
# пример вложенного списка my_list = ["mouse", [8, 4, 6], ['a']]
Как получить доступ к элементам из списка?
Существуют различные способы доступа к элементам списка.
Доступ по индексу
Для доступа к элементу списка можно использовать оператор индекса []. Индекс начинается с 0. Итак, список из 5 элементов будет иметь индексы от 0 до 4.
Попытка получить доступ к элементу, который не существует, вызовет ошибку IndexError. Индекс должен быть целым числом. Нельзя использовать float или другие типы данных в качестве индекса, это приведет к ошибке TypeError.
Доступ к вложенному списку осуществляется с помощью дополнительных индексов.
my_list = ['p','r','o','b','e'] # Вывод первого элемента: p print(my_list[0]) # Вывод третьего элемента: o print(my_list[2]) # Вывод последнего (пятого) элемента: e print(my_list[4]) # Ошибка, индексом может быть только целое число # my_list[4.0] # Пример вложенного списка n_list = ["Happy", [2,0,1,5]] # Индексы вложенных списков # Вывод второго символа первого элемента списка: a print(n_list[0][1]) # вывод четвертого элемента второго вложенного списка: 5 print(n_list[1][3])
Отрицательные индексы списка
Python допускает отрицательную индексацию для элементов списка. Индекс -1 выведет последний элемент, -2 - второй элемент с конца и т.д.
my_list = ['p','r','o','b','e'] # Вывод последнего элемента: e print(my_list[-1]) # Вывод последнего элемента с конца (первого): p print(my_list[-5])
Срезы списков в Python
Вы можете получить доступ к ряду элементов в списке, используя оператор среза (двоеточие).
my_list = ['p','r','o','g','r','a','m','f','i', 'l', 'e', 's'] # Элементы с 3го по 5й print(my_list[2:5]) # Элементы с начала до 4го print(my_list[:4]) # Элементы с 6го до последнего print(my_list[5:]) # Элементы с первого до последнего print(my_list[:])
Как изменить или добавить элементы в список?
Список в питоне является изменяемым типом, то есть его элементы могут быть изменены в отличие от строки или кортежа.
Мы можем использовать оператор присваивания (=), чтобы изменить элемент или диапазон элементов.
odd = [2, 4, 6, 8] # Изменение первого элемента odd[0] = 1 # Результат: [1, 4, 6, 8] print(odd) # Изменение элементов со 2го по 4й odd[1:4] = [3, 5, 7] # Результат: [1, 3, 5, 7] print(odd)
Мы можем добавить один элемент в список с помощью метода append() или несколько элементов с помощью метода extended().
odd = [1, 3, 5] odd.append(7) # Результат: [1, 3, 5, 7] print(odd) odd.extend([9, 11, 13]) # Результат: [1, 3, 5, 7, 9, 11, 13] print(odd)
Мы также можем использовать оператор + для объединения двух списков. Это называется конкатенацией списка.
Оператор * повторяет список заданное количество раз.
odd = [1, 3, 5] # Результат: [1, 3, 5, 9, 7, 5] print(odd + [9, 7, 5]) # Результат: ["re", "re", "re"] print(["re"] * 3)
Кроме того, мы можем вставить один или несколько элементов в нужное место с помощью метода insert().
odd = [1, 9] odd.insert(1,3) # Результат: [1, 3, 9] print(odd) odd[2:2] = [5, 7] # Результат: [1, 3, 5, 7, 9] print(odd)
Как удалить элементы из списка
Мы можем удалить один или несколько элементов из списка, используя ключевое слово del. При помощи этой команды вы так же можете удалить список полностью.
my_list = ['p','r','o','b','l','e','m'] # Удалить один элемент del my_list[2] # Результат: ['p', 'r', 'b', 'l', 'e', 'm'] print(my_list) # Удалить несколько элементов del my_list[1:5] # Результат: ['p', 'm'] print(my_list) # Удалить весь список del my_list # Результат: Error: List not defined print(my_list)
Мы можем использовать метод remove() для удаления элемента или метод pop() для удаления элемента по указанному индексу.
Метод pop() удаляет последний элемент, если индекс не указан. Это помогает нам реализовывать списки в виде стеков «first come, last go» («первый вошел, последний вышел»).
Мы также можем использовать метод clear() для очистки списка от содержимого, без удаления самого списка.
my_list = ['p','r','o','b','l','e','m'] my_list.remove('p') # Результат: ['r', 'o', 'b', 'l', 'e', 'm'] print(my_list) # Результат: 'o' print(my_list.pop(1)) # Результат: ['r', 'b', 'l', 'e', 'm'] print(my_list) # Результат: 'm' print(my_list.pop()) # Результат: ['r', 'b', 'l', 'e'] print(my_list) my_list.clear() # Результат: [] print(my_list)
Наконец, мы также можем удалить элементы в списке, назначив пустой список фрагменту элементов.
>>> my_list = ['p','r','o','b','l','e','m'] >>> my_list[2:3] = [] >>> my_list ['p', 'r', 'b', 'l', 'e', 'm'] >>> my_list[2:5] = [] >>> my_list ['p', 'r', 'm']
Методы списков Python
Методы, которые доступны для работы со списками при программировании на Python, приведены в таблице ниже.
- append() - добавляет элемент в конец списка
- extend() - добавляет все элементы списка в другой список
- insert() - вставляет элемент по указанному индексу
- remove() - удаляет элемент из списка
- pop() - удаляет и возвращает элемент по указанному индексу
- clear() - удаляет все элементы из списка (очищает список)
- index() - возвращает индекс первого соответствующего элемента
- count() - возвращает количество элементов, переданных в качестве аргумента
- sort() - сортировка элементов в списке в порядке возрастания
- reverse() - обратный порядок элементов в списке
- copy() - возвращает поверхностную копию списка
Генератор списков: иной способ создания нового списка в Python
Генератор списка - это лаконичный способ создания нового списка из существующего списка в Python.
Генератор списка состоит из выражения, за которым следует оператор for в квадратных скобках.
В примере ниже, создается список, в котором каждый следующий элемент умножается на 2:
pow_new = [2 ** x for x in range(10)] # Результат: [1, 2, 4, 8, 16, 32, 64, 128, 256, 512] print(pow_new)
А вот так можно создать такой же список не используя генератор списка:
pow_new = [] for x in range(10): pow_new.append(2 ** x)
Проверка существования элемента в списке
Оператор in позволяет проверить, существует ли данный элемент в списке. Если да, то в результате вернется True, если нет то False.
my_list = ['p','r','o','b','l','e','m'] # Результат: True print('p' in my_list) # Результат: False print('a' in my_list) # Результат: True print('c' not in my_list)
Итерация по списку (перебор списка)
Используя цикл for, мы можем перебирать каждый элемент списка и выполнять необходимые действия с ним.
for fruit in ['apple','banana','mango']: print("I like",fruit)
В результате мы увидим три строки для каждого из элементов списка.
Оставить комментарий