Python3 Списки
Последовательности — это самые базовые структуры данных в Python.
Каждое значение в последовательности имеет соответствующее значение позиции, называемое индексом. Первый индекс — 0, второй — 1 и так далее.
В Python есть 6 встроенных типов последовательностей, но наиболее распространены списки и кортежи.
Операции, которые можно выполнять со списками, включают индексацию, срезы, сложение, умножение и проверку принадлежности.
Кроме того, в Python есть встроенные методы для определения длины последовательности и для определения наибольшего и наименьшего элементов.
Списки — наиболее часто используемый тип данных в Python; они могут представляться как значения, разделённые запятыми, в квадратных скобках.
Элементы данных в списке не обязаны иметь один и тот же тип.
Чтобы создать список, просто заключите различные элементы данных, разделённые запятыми, в квадратные скобки. Как показано ниже:
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
Доступ к значениям в списке
Как и при индексации строк, индексы списка начинаются с0второй индекс равен1и так далее.
С помощью индексов можно получать срезы списков, объединять их и так далее.

Пример
list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[0] )
print( list[1] )
print( list[2] )
Приведённый выше пример выводит:
red green blue
Индексация также может начинаться с конца: индекс последнего элемента равен-1, а предыдущего —-2, и так далее.

Пример
list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[-1] )
print( list[-2] )
print( list[-3] )
Приведённый выше пример выводит:
black white yellow
Используйте индексы для доступа к значениям в списке. Аналогично можно использовать квадратные скобки[]для получения среза символов, как показано ниже:

Пример
nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(nums[0:4])
Приведённый выше пример выводит:
[10, 20, 30, 40]
Срезы с отрицательными значениями индексов:
Пример
list = ['Google', 'Example', "Zhihu", "Taobao", "Wiki"]
# Прочитать второй элемент
print ("list[1]: ", list[1])
# Срез от второго элемента (включительно) до предпоследнего элемента (не включая)
print ("list[1:-2]: ", list[1:-2])
Приведённый выше пример выводит:
list[1]: Example list[1:-2]: ['Example', 'Zhihu']
Обновление списков
Вы можете изменять или обновлять элементы данных в списке, а также можете использовать метод append() для добавления элементов списка, как показано ниже:
Пример (Python 3.0+)
list = ['Google', 'Example', 1997, 2000]
print ("Третий элемент: ", list[2])
list[2] = 2001
print ("Третий элемент после обновления: ", list[2])
list1 = ['Google', 'Example', 'Taobao']
list1.append('Baidu')
print ("Обновлённый список: ", list1)
Примечание:Мы обсудим в следующих главахappend()использование метода.
Приведённый выше пример выводит:
第三个元素为 : 1997 更新后的第三个元素为 : 2001 更新后的列表 : ['Google', 'Example', 'Taobao', 'Baidu']
Удаление элементов списка
Вы можете использовать инструкцию del для удаления элементов из списка, как в следующем примере:
Пример (Python 3.0+)
list = ['Google', 'Example', 1997, 2000]
print ("Исходный список: ", list)
del list[2]
print ("После удаления третьего элемента : ", list)
Приведённый выше пример выводит:
原始列表 : ['Google', 'Example', 1997, 2000] 删除第三个元素 : ['Google', 'Example', 2000]
Примечание:Мы обсудим использование метода remove() в следующих главах
Операторы списков Python
Операторы + и * для списков похожи на операторы для строк. Знак + используется для объединения списков, а знак * — для повторения списков.
Как показано ниже:
| Выражение Python | Результат | Описание |
|---|---|---|
| len([1, 2, 3]) | 3 | Длина |
| [1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | Конкатенация |
| ['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | Повторение |
| 3 in [1, 2, 3] | True | Наличие элемента в списке |
| for x in [1, 2, 3]: print(x, end=" ") | 1 2 3 | Итерация |
Срезы и конкатенация списков Python
Срезы списков Python похожи на операции со строками, как показано ниже:
Операция:
| Выражение Python | Результат | Описание |
|---|---|---|
| L[2] | 'Taobao' | Чтение третьего элемента |
| L[-2] | 'Example' | Прочитать предпоследний элемент справа: считать справа |
| L[1:] | ['Example', 'Taobao'] | Вывести все элементы, начиная со второго элемента |
>>> L[2]
'Taobao'
>>> L[-2]
'Example'
>>> L[1:]
['Пример', 'Taobao']
>>>
Списки также поддерживают операции конкатенации:
>>> squares += [36, 49, 64, 81, 100]
>>> squares
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>>
Вложенные списки
Использование вложенных списков означает создание других списков внутри списка, например:
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'
Сравнение списков
Сравнение списков требует импорта модуляoperator, а именно методаeq(см.:Python operator module):
Пример
import operator
a = [1, 2]
b = [2, 3]
c = [2, 3]
print("operator.eq(a,b): ", operator.eq(a,b))
print("operator.eq(c,b): ", operator.eq(c,b))
Приведённый выше код выводит:
operator.eq(a,b): False operator.eq(c,b): True
Функции и методы списков Python
Python включает следующие функции:
| Нет. | Функция |
|---|---|
| 1 | len(list) Количество элементов в списке |
| 2 | max(list) Возвращает максимальное значение элементов списка |
| 3 | min(list) Возвращает минимальное значение элементов списка |
| 4 | list(seq) Преобразует кортеж в список |
Python включает следующие методы:
| Нет. | Метод |
|---|---|
| 1 | list.append(obj) Добавляет новый объект в конец списка |
| 2 | list.count(obj) Считает, сколько раз элемент появляется в списке |
| 3 | list.extend(seq) Добавляет несколько значений из другой последовательности в конец списка сразу (расширяет исходный список новым списком) |
| 4 | list.index(obj) Находит индекс первой позиции элемента с заданным значением в списке |
| 5 | list.insert(index, obj) Вставляет объект в список |
| 6 | list.pop([index=-1]) Удаляет элемент из списка (по умолчанию последний элемент) и возвращает значение этого элемента |
| 7 | list.remove(obj) Удаляет первый элемент, совпадающий со значением в списке |
| 8 | list.reverse() Изменяет порядок элементов в списке на обратный |
| 9 | list.sort( key=None, reverse=False) Сортирует исходный список |
| 10 | list.clear() Очищает список |
| 11 | list.copy() Копирует список |