Python3 Списки

Последовательности — это самые базовые структуры данных в Python.

Каждое значение в последовательности имеет соответствующее значение позиции, называемое индексом. Первый индекс — 0, второй — 1 и так далее.

В Python есть 6 встроенных типов последовательностей, но наиболее распространены списки и кортежи.

Операции, которые можно выполнять со списками, включают индексацию, срезы, сложение, умножение и проверку принадлежности.

Кроме того, в Python есть встроенные методы для определения длины последовательности и для определения наибольшего и наименьшего элементов.

Списки — наиболее часто используемый тип данных в Python; они могут представляться как значения, разделённые запятыми, в квадратных скобках.

Элементы данных в списке не обязаны иметь один и тот же тип.

Чтобы создать список, просто заключите различные элементы данных, разделённые запятыми, в квадратные скобки. Как показано ниже:

list1 = ['Google', 'Example', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']

Доступ к значениям в списке

Как и при индексации строк, индексы списка начинаются с0второй индекс равен1и так далее.

С помощью индексов можно получать срезы списков, объединять их и так далее.

Пример

#!/usr/bin/python3

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[0] )
print( list[1] )
print( list[2] )

Приведённый выше пример выводит:

red
green
blue

Индексация также может начинаться с конца: индекс последнего элемента равен-1, а предыдущего —-2, и так далее.

Пример

#!/usr/bin/python3

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[-1] )
print( list[-2] )
print( list[-3] )

Приведённый выше пример выводит:

black
white
yellow

Используйте индексы для доступа к значениям в списке. Аналогично можно использовать квадратные скобки[]для получения среза символов, как показано ниже:

Пример

#!/usr/bin/python3

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(nums[0:4])

Приведённый выше пример выводит:

[10, 20, 30, 40]

Срезы с отрицательными значениями индексов:

Пример

#!/usr/bin/python3

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+)

#!/usr/bin/python3

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+)

#!/usr/bin/python3
 
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 похожи на операции со строками, как показано ниже:

L=['Google', 'Example', 'Taobao']

Операция:

Выражение PythonРезультатОписание
L[2]'Taobao'Чтение третьего элемента
L[-2]'Example'Прочитать предпоследний элемент справа: считать справа
L[1:]['Example', 'Taobao']Вывести все элементы, начиная со второго элемента
>>> L=['Google', 'Example', 'Taobao']
>>> L[2]
'Taobao'
>>> L[-2]
'Example'
>>> L[1:]
['Пример', 'Taobao']
>>>

Списки также поддерживают операции конкатенации:

>>> squares = [1, 4, 9, 16, 25]
>>> squares += [36, 49, 64, 81, 100]
>>> squares
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>>

Вложенные списки

Использование вложенных списков означает создание других списков внутри списка, например:

>>> a = ['a', 'b', 'c']
>>> 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):

Пример

# Импорт модуля operator
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 включает следующие функции:

Нет.Функция
1len(list)
Количество элементов в списке
2max(list)
Возвращает максимальное значение элементов списка
3min(list)
Возвращает минимальное значение элементов списка
4list(seq)
Преобразует кортеж в список

Python включает следующие методы:

Нет.Метод
1list.append(obj)
Добавляет новый объект в конец списка
2list.count(obj)
Считает, сколько раз элемент появляется в списке
3list.extend(seq)
Добавляет несколько значений из другой последовательности в конец списка сразу (расширяет исходный список новым списком)
4list.index(obj)
Находит индекс первой позиции элемента с заданным значением в списке
5list.insert(index, obj)
Вставляет объект в список
6list.pop([index=-1])
Удаляет элемент из списка (по умолчанию последний элемент) и возвращает значение этого элемента
7list.remove(obj)
Удаляет первый элемент, совпадающий со значением в списке
8list.reverse()
Изменяет порядок элементов в списке на обратный
9 list.sort( key=None, reverse=False)
Сортирует исходный список
10list.clear()
Очищает список
11list.copy()
Копирует список
Другие расширения