MyTetra Share
Делитесь знаниями!
Списки, кортежи и словари в Python
Время создания: 29.07.2019 23:51
Текстовые метки: Python, python-scripts.com, lists-tuples-dictionaries
Раздел: !Закладки - Python - python-scripts.com
Запись: xintrea/mytetra_db_adgaver_new/master/base/15164523425xe8g41j94/text.html на raw.githubusercontent.com

python-scripts.com

Списки, кортежи и словари в Python

автор

7-11 минут


Python содержит важные типы данных, которыми вы с высокой вероятностью будете использовать каждый день. Они называются списки, кортежи и словари. Цель данной статьи познакомить вас с ними поближе. Они не очень сложные, так что надеюсь, вы научитесь, как использовать их по назначению. После освоения этих трех типов данных, в сочетании со строками из предыдущей статьи, вы ощутимо продвинетесь в изучении Python. Вам понадобится каждый из этих четырех кирпичиков для создания 99% приложений.

Списки

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


my_list = []

my_list = list()

Как вы видите, вы можете создать список при помощи квадратных скобок, или при помощи встроенного инструмента Python – list. Список состоит из таких элементов, как строки, цифры, объекты и смеси типов. Давайте взглянем на несколько примеров:


my_list = [1, 2, 3]

my_list2 = ["a", "b", "c"]

my_list3 = ["a", 1, "Python", 5]

Первый список содержит 3 числа, второй 3 строки, третий содержит смесь. Вы также можете создавать списки списков, вот так:


my_nested_list = [my_list, my_list2]

print(my_nested_list) # [[1, 2, 3], ['a', 'b', 'c']]

В какой-то момент вам может понадобиться скомбинировать два списка вместе. Первый способ сделать это – при помощи метода extend:


combo_list = [1]

one_list = [4, 5]

a = combo_list.extend(one_list)

print(a) # [1, 4, 5]

Немного проще будет просто добавить два списка вместе.


my_list = [1, 2, 3]

my_list2 = ["a", "b", "c"]

combo_list = my_list + my_list2

print(combo_list) # [1, 2, 3, 'a', 'b', 'c']

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


alpha_list = [34, 23, 67, 100, 88, 2]

alpha_list.sort()

print(alpha_list) # [2, 23, 34, 67, 88, 100]

Получилось. Видите? Давайте взглянем на еще один пример, чтобы закрепить результат:


alpha_list = [34, 23, 67, 100, 88, 2]

sorted_list = alpha_list.sort()

print(sorted_list) # None

В этом примере мы попытались назначить сортированный список переменной. Однако, когда вы вызываете метод sort() в списке, он сортирует список на месте. Так что если вы попробуете назначить результат другой переменной, тогда возникнет объект None, который аналогичен объекту Null в других языках. Таким образом, когда вам нужно отсортировать что-нибудь, просто помните, что вы сортируете на месте, и вы не можете назначить объект другой переменной.
Вы можете разрезать список также, как вы делаете это со строкой:


a = alpha_list[0:3]

print(a) # [2, 23, 34]

Данный код выдает список из трех первых элементов.

Кортежи

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


my_tuple = (1, 2, 3, 4, 5)

a = my_tuple[0:3]

print(a) # (1, 2, 3)

another_tuple = tuple()

abc = tuple([1, 2, 3])

Данный код демонстрирует способ создания кортежа с пятью элементами. Также он говорит нам о том, что мы можете делать нарезку кортежей. Однако, вы не можете сортировать кортеж! Последние два примера показывают, как создавать кортеж при помощи ключевого слова tuple (которое и переводится как «кортеж»). Первый код просто создает пустой кортеж, в то время как во втором примере кортеж содержит три элемента. Обратите внимание на то, что в нем есть список. Это пример конвертации. Мы можем менять или конвертировать объект из одного типа данных в другой. В нашем случае, мы конвертируем список в кортеж. Если вы хотите превратить кортеж abc обратно в список, вы можете сделать это следующим образом:

Для повторения, данный код конвертирует кортеж в список при помощи функции list.

Словари

Словарь Python, по большей части, представляет собой хэш-таблицу. В некоторых языках, словари могут упоминаться как ассоциативная память, или ассоциативные массивы. Они индексируются при помощи ключей, которые могут быть любого неизменяемого типа. Например, строка или число могут быть ключом. Вам обязательно стоит запомнить тот факт, что словарь – это неупорядоченный набор пар ключ:значение, и ключи обязательно должны быть уникальными. Вы можете получить список ключей путем вызова метода keys() в том или ином словаря. Чтобы проверить, присутствует ли ключ в словаре, вы можете использовать ключ in в Python. В некоторых старых версиях Python (с 2.3 и более ранних, если быть точным), вы увидите ключевое слово has_key, которое используется для проверки наличия ключа в словаре. Данный ключ является устаревшим в Python 2.X, и был удален, начиная с версии 3.Х. Давайте попробуем создать наш первый словарь:


my_dict = {}

another_dict = dict()

my_other_dict = {"one":1, "two":2, "three":3}

print(my_other_dict) # {'three': 3, 'two': 2, 'one': 1}

Первые два примера показывают, как создавать пустой словарь. Все словари находятся в фигурных скобках. Последняя строчка показывает, что мы имеем в виду, когда говорим «неупорядоченный словарь». Теперь настало время узнать, как принимаются значения в словаре.


my_other_dict = {"one":1, "two":2, "three":3}

print(my_other_dict["one"]) # 1

my_dict = {"name":"Mike", "address":"123 Happy Way"}

print(my_dict["name"]) # 'Mike'

В первом примере, мы использовали словарь из предыдущего примере, и вытащили значение, связанное с ключом под названием one. Второй пример демонстрирует, как задавать значение ключу name. Теперь попробуем узнать, находится ли ключ в словаре или нет:


print("name" in my_dict) # True

print("state" in my_dict) # False

Что-ж, если ключ в словаре, Python выдает нам Boolean True. В противном случае, мы получаем Boolean False. Если вам нужно получить список ключей  в словаре, вам нужно сделать следующее:


print(my_dict.keys()) # dict_keys(['name', 'address'])

В Python 2, метод keys дает нам список. Но в Python 3 он дает объект view. Это дает разработчику возможность обновлять словарь, так что view также обновится. Обратите внимание на то, что когда мы используем ключевое слово in для текста содержимого словаря, лучше будет сделать это в словаре, а не в списке, выдаваемом методом keys. Смотрим ниже:


if "name" in my_dict # Такая конструкция правильная

if "name" in my_dict.keys() # Работает но медленее

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

Подведем итоги

В данной статье мы узнали, как создавать списки, кортежи и словари в Python. Убедитесь в том, что все, что изложено в данной статье понятно для вас, перед тем как двигаться дальше. Эти основы необходимо знать при разработке любого приложения. Вы будете создавать сложные структуры данных, пользуясь этими тремя кирпичиками каждый день, если планируете быть программистом Python, разумеется. Каждый из этих типов данных может быть размещен в другой. Например, вы можете создавать словарь кортежей, или кортеж, созданный из нескольких словарей, и так далее.


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования