English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой статье мы рассмотрим все о Python списке; как их создавать, как разрезать списки, добавлять или удалять элементы и т.д.
Python предоставляет серию составных типов данных, обычно называемых последовательностями. Список является одним из самых часто используемых и многофункциональных типов данных в Python.
В программировании на Python список создается, помещая все элементы (элементы) в квадратные скобки [] и разделяя их запятыми.
Он может содержать любое количество элементов, и они могут быть различных типов (целые числа, плавающие числа, строки и т.д.).
# Пустой list my_list = [] # Список с целыми числами my_list = [1, 2, 3] # Список с混енными типами данных my_list = [1, "Hello", 3.4]
Таким же образом, список может содержать другой список в качестве элемента. Это называется вложенным списком.
# Вложенный list 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])
Мы можем использовать оператор среза (двоеточие:) для доступа к ряду элементов в списке.
my_list = ['p','r','o','g','r','a','m','i','z'] # От третьего элемента до пятого print(my_list[2:5]) # От начала до четвертого элемента print(my_list[:-5]) # Шестой элемент до конца print(my_list[5:]) # Элементы от начала до конца print(my_list[:])
С помощью учета индексов между элементами, срезы могут быть визуализированы наиболее эффективно. Если мы хотим получить доступ к диапазону, нам нужны два индекса для разделения той части списка.
Список является изменяемым, что означает, что их элементы могут быть изменены, в отличие отstringилиtuple.
Мы можем использовать оператор присваивания (=) для изменения одного элемента или ряда элементов.
# Список значений odd = [2, 4, 6, 8] # Изменить первый элемент odd[0] = 1 # Вывод: [1, 4, 6, 8] print(odd) # Изменить вторые, третьи и четвертые элементы odd[1:4] = [3, 5, 7] # Вывод: [1, 3, 5, 7] print(odd)
Мы можем использовать метод append() для добавления одного элемента в список или метод extend() для добавления нескольких элементов в список.
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 # Ошибка: Список не определен print(my_list)
Мы можем использовать метод remove() для удаления заданного элемента, а также метод pop() для удаления элемента по индексу.
Если индекс не указан, метод pop() удаляет и возвращает последний элемент. Это помогает нам реализовать список как стэк (структуру данных с приоритетом «первым вошедшим, первым вышедшим»).
Мы также можем использовать метод 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编程中list对象可用的方法。
它们以list.method()方式访问。上面已经使用了某些方法。
Python列表方法的一些示例:
my_list = [3, 8, 1, 6, 0, 8, 4] # 输出: 1 print(my_list.index(8)) # 输出: 2 print(my_list.count(8)) my_list.sort() # 输出: [0, 1, 3, 4, 6, 8, 8] print(my_list) my_list.reverse() # 输出: [8, 8, 6, 4, 3, 1, 0] print(my_list)
列表理解是从Python现有列表中创建新列表的一种简洁明了的方法。
列表理解包含一个表达式,后跟方括号内的for语句.
这是一个列出每项增加2的幂的示例。
pow2 = [2 ** x for x in range(10)] # 输出: [1, 2, 4, 8, 16, 32, 64, 128, 256, 512] print(pow2)
此代码等效于
pow2 = [] for x in range(10): pow2.append(2 ** x)
列表推导可以选择包含更多for或if语句.可选if语句可以过滤出新列表的项目。这里有一些示例。
>>> pow2 = [2 ** x for x in range(10) if x > 5] >>> pow2 [64, 128, 256, 512] >>> odd = [x for x in range(20) if x % 2 == 1] >>> odd [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] >>> [x+y for x in ['Python', 'C'] for y in ['Language', 'Programming']] ['Python Language', 'Python Programming', 'C Language', 'C Programming']
Мы можем использовать ключевое слово in для проверки наличия элемента в списке.
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)