Списки Python — это фундаментальный тип данных в Python. Они похожи на массивы в других языках, таких как Javascript.. Вы можете узнать больше об основных Структуры данных Python здесь.

Создать список в Python очень просто. Давайте начнем с некоторых основ, а затем углубимся в полезные способы работы со списками. Чтобы начать новый список, просто определить переменную в Pythonс инкапсулированным в него содержимым [] квадратных скобок:

myList = [ "some", "list", "contents" ]
Войти в полноэкранный режим

Выйти из полноэкранного режима

Поскольку Python — это язык с динамической типизацией, нет серьезных ограничений на то, что может находиться внутри списка, поэтому не стесняйтесь добавлять и другие типы, такие как целые числа или числа с плавающей запятой:

myList = [ "some", "list", "contents", 1, 2.5, "etc" ]
Войти в полноэкранный режим

Выйти из полноэкранного режима

Пустые списки можно определить как [] пустые квадратные скобки, если вам тоже нужно это сделать:

myList = []
Войти в полноэкранный режим

Выйти из полноэкранного режима

Списки так же может быть вложенныйили содержать списки внутри списков (… внутри списков). Так что это также допустимый питон:

myList = [ [ "some", "list" ], "inside", "a", "list" ]
Войти в полноэкранный режим

Выйти из полноэкранного режима

Получение длины списка выполняется с помощью автономного len() функция. Вот пример, где мы пытаемся получить длину нашего вложенного списка:

myList = [ [ "some", "list" ], "inside", "a", "list" ]
print(len(myList)) # returns 4
Войти в полноэкранный режим

Выйти из полноэкранного режима

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

myList = [ "some", "list", "contents", 1, 2.5, "etc" ]
print(myList[0]) # "some"
Войти в полноэкранный режим

Выйти из полноэкранного режима

Или, чтобы получить первые два элемента:

myList = [ "some", "list", "contents", 1, 2.5, "etc" ]
print(myList[0:2]) # [ "some", "list" ]
Войти в полноэкранный режим

Выйти из полноэкранного режима


Список методов в Python

Списки поставляются с набором встроенных методов в Python, чтобы позволить нам полностью реализовать их потенциал в качестве хранилищ данных. Эти методы:

  • list.append("newItem") — добавляет элемент со значением newItem до конца списков.
  • list.extend(["newItem"]) — добавляет в список еще один повторяемый элемент, например — объединение двух списков.
  • list.insert(0, "newItem") — вставляет элемент списка newItem и индекс 0. Вы можете изменить значение индекса, чтобы решить, куда следует вставить элемент.
  • list.clear() — полностью удаляет содержимое списков.
  • list.remove("someItem") — удаляет первый элемент списка со значением item. Выдаст ошибку, если нет значения item существуют.
  • list.count("someItem") — подсчитывает любые случаи someItem в списке. Если ни один элемент в списке не имеет значения someItem то он вернет 0.
  • list.copy() — создает неглубокую копию списка.
  • list.reverse() — инвертировать элементы списка.
  • list.pop(10) — удаляет элемент в позиции 10 списка и возвращает его. Если вы не определите номер, он удалит последний элемент, т.е. list.pop().
  • list.sort() — для сортировки списков.

Чтобы воплотить это в жизнь, давайте рассмотрим несколько примеров того, как это работает на практике:


Добавление и вставка новых элементов списка

Одна из наиболее частых операций, которые вы захотите сделать со списком, — это добавить в него новые данные. Если мы создали список, мы можем добавить данные с помощью append метод, как указано, или insert для вставки элементов в определенную позицию:

myList = [ "inside", "a", "list" ]
myList.append("friend")
myList.insert(2, "new")
print(myList); # ['inside', 'a', 'new', 'list', 'friend']
Войти в полноэкранный режим

Выйти из полноэкранного режима

Вы также можете добавить в список, используя +=:

myList = [ "inside", "a", "list" ]
myList += "friend"
print(myList) # ['inside', 'a', 'list', 'friend']
Войти в полноэкранный режим

Выйти из полноэкранного режима

Или, если у вас есть два списка, вы можете добавить второй к первому, используя extend:

myList = [ "some", "list" ]
otherList = [ "other", "list" ]

myList.extend(otherList)
print(myList) # ['some', 'list', 'other', 'list']
Войти в полноэкранный режим

Выйти из полноэкранного режима


Удаление списков и содержимого списков

Не менее распространенная вещь, которую вы захотите сделать после того, как добавите все в свой список, — это удалить элементы. Вы можете удалить с remove или же clear чтобы просто удалить весь список:

myList = [ "inside", "a", "list" ]
myList.remove("inside")
print(myList) # ['a', 'new']


myList.clear()
print(myList) # returns []
Войти в полноэкранный режим

Выйти из полноэкранного режима


Реверс списка в Python

В некоторых ситуациях вы также захотите перевернуть списки. В Python для этого есть встроенный метод, поэтому нет необходимости определять свой собственный:

myList =  [ "inside", "a", "list" ]
myList.reverse()
print(myList) # ['list', 'a', 'inside']
Войти в полноэкранный режим

Выйти из полноэкранного режима


Изготовление копий списков

В Python мы используем == сравнить по значению и is сравнивать по ссылке. Мы можем использовать copy() сделать новую ссылку для списка. Это создаст новую опорную точку в памяти, указывающую на то же значение. Ниже, myList а также otherList равны по значению, но теперь их ссылка различна, поэтому myList is otherList возвращает ложь:

myList =  [ "a", "list" ]
otherList = myList.copy()
print(myList == otherList) # True
print(myList is otherList) # False
Войти в полноэкранный режим

Выйти из полноэкранного режима

Это также можно записать как myList[:]если вы хотите избежать использования copy() метод:

myList =  [ "a", "list" ]
otherList = myList[:]
print(myList == otherList) # True
print(myList is otherList) # False
Войти в полноэкранный режим

Выйти из полноэкранного режима


Сортировка списков в Python

Сортировать список в порядке возрастания легко с помощью sort функция, и все элементы одного типа:

myList =  [ "a", "c", "e", "b", "f", "d", "g", "z", "w", "x" ]
myNumberList = [ 1, 3, 5, 2, 7, 4, 6 ]

myList.sort()
myNumberList.sort() 

print(myList) # ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'w', 'x', 'z']
print(myNumberList) # [1, 2, 3, 4, 5, 6, 7]
Войти в полноэкранный режим

Выйти из полноэкранного режима

Если вы попытаетесь отсортировать, где список содержит разные типы, такие как целые числа и строки, вы получите ошибку. Если вы хотите отсортировать список на основе другого признака списка, вы можете определить его keyа также reverse аргументы:

  • key дает нам число, которое будет использоваться для сравнения содержимого списка
  • reverse если установлено значение true, порядок будет обратным.

Например, чтобы поместить все значения, которые a в начале мы могли бы попробовать что-то вроде этого:

def isA(letter):
    if(letter == "a"):
        return 1
    else:
        return 0

myList =  [ "a", "c", "a", 5, "f", "a", 2, "z", "a", "x" ]

myList.sort(key=isA, reverse=True)

print(myList) # ['a', 'a', 'a', 'a', 'c', 5, 'f', 2, 'z', 'x']
Войти в полноэкранный режим

Выйти из полноэкранного режима

Здесь мы определяем функцию isAкоторый принимает каждый элемент списка в качестве своего первого аргумента (letter). Если письмо aто он возвращает 1, иначе он возвращает 0. Затем мы переворачиваем список, используя reverse=True аргумент, чтобы получить все aс в начале.


Списки лучше всего работают как стопки данных!

Поскольку списки упорядоченный, они лучше всего функционируют как стеки, что означает, что добавление и удаление элементов из конца списка происходит очень быстро, а добавление или удаление элементов из начала — довольно медленно. Это означает, что рекомендуется использовать pop а также append где это возможно, так как это будет намного быстрее для больших наборов данных, чем другие методы для списков.


Вывод

Списки — это сверхмощные структуры данных в Python, которые используются везде. Вы можете узнать больше о структурах данных Python здесь. Чтобы узнать больше о других инженерных темах, проверить остальную часть моего контента. Вы можете прочитать больше о структурах данных Python ниже: