Списки в Python

Списки в Python

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)

В результате мы увидим три строки для каждого из элементов списка.

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*