|
|||||||
Словари и их методы в Python
Время создания: 29.07.2019 23:51
Раздел: Разные закладки - Python - Модули
Запись: xintrea/mytetra_db_adgaver_new/master/base/1533844402oy3f6ifyrs/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Что такое словарьСловарь — неупорядоченная структура данных, которая позволяет хранить пары «ключ — значение». Вот пример словаря на Python: dictionary = {'персона': 'человек', 'марафон': 'гонка бегунов длиной около 26 миль', 'противостоять': 'оставаться сильным, несмотря на давление', 'бежать': 'двигаться со скоростью'} Данный словарь использует строки в качестве ключей, однако ключом может являться в принципе любой неизменяемый тип данных. Значением же конкретного ключа может быть что угодно. Вот ещё один пример словаря, где ключами являются числа, а значениями — строки: gender_dict = {0: 'муж', 1: 'жен'} Важное уточнение: если вы попробуете использовать изменяемый тип данных в качестве ключа, то получите ошибку: dictionary = {(1, 2.0): 'кортежи могут быть ключами', 1: 'целые числа могут быть ключами', 'бежать': 'строки тоже', ['носок', 1, 2.0]: 'а списки не могут'} Прим. перев. На самом деле проблема не с изменяемыми, а с нехэшируемыми типами данных, но обычно это одно и то же. Получение данных из словаряДля получения значения конкретного ключа используются квадратные скобки []. Предположим, что в нашем словаре есть пара 'марафон': 26. # берём значение с ключом "марафон" dictionary['марафон'] Опять же, вы получите ошибку, если попытаетесь получить значение по несуществующему ключу. Для избежания подобных ошибок существуют методы, о которых мы сейчас поговорим. Добавление и обновление ключейДобавление новых пар в словарь происходит достаточно просто: # Добавляем ключ "туфля" со значением "род обуви, закрывающей ногу не выше щиколотки" dictionary['туфля'] = 'род обуви, закрывающей ногу не выше щиколотки' Обновление существующих значений происходит абсолютно также: # Обновляем ключ "туфля" и присваиваем ему значение "хорошая туфля" dictionary['туфля'] = 'хорошая туфля' Удаление ключейДля удаления ключа и соответствующего значения из словаря можно использовать del # Удаляем значение с ключом "противостоять" из словаря del dictionary['противостоять'] МетодыСловари в Python имеют множество различных полезных методов, которые помогут вам в работе с ними. Вот лишь некоторые из них: UpdateМетод update() пригодится, если нужно обновить несколько пар сразу. Метод принимает другой словарь в качестве аргумента. # Добавляем две пары в словарь dictionary, используя метод update dictionary.update({'бежал': 'бежать в прошедшем времени', 'туфли': 'туфля во множественном числе'})
>>> dictionary {'марафон': 'гонка бегунов длиной около 26 миль', 'персона': 'человек', 'бежал': 'бежать в прошедшем времени', 'бежать': 'двигаться со скоростью', 'туфля': 'род обуви, закрывающей ногу не выше щиколотки', 'туфли': 'туфля во множественном числе'} Если вас интересует, почему данные в словаре расположены не в том порядке, в котором они были внесены в него, то это потому что словари не упорядочены. Get# Допустим, у нас есть словарь story_count story_count = {'сто': 100, 'девяносто': 90, 'двенадцать': 12, 'пять': 5} Метод get() возвращает значение по указанному ключу. Если указанного ключа не существует, метод вернёт None. # Ключ "двенадцать" существует и метод get в данном случае вернёт 12 story_count.get('двенадцать') Метод можно использовать для проверки наличия ключей в словаре: >>> story_count.get('два') None Также можно указать значение по умолчанию, которое будет возвращено вместо None, если ключа в словаре не окажется: # Метод вернёт 0 в случае, если данного ключа не существует story_count.get('два', 0) PopМетод pop() удаляет ключ и возвращает соответствующее ему значение. >>> story_count.pop('девяносто') 90 >>> story_count {'двенадцать': 12, 'сто': 100, 'пять': 5} KeysМетод keys() возвращает коллекцию ключей в словаре. >>> story_count.keys() ['сто', 'пять', 'двенадцать'] ValuesМетод values() возвращает коллекцию значений в словаре. >>> story_count.values() [100, 12, 5] ItemsМетод items() возвращает пары «ключ — значение». >>> dictionary.items() [('персона', 'человек'), ('бежать', 'двигаться со скоростью'), ('туфля', 'род обуви, закрывающей ногу не выше щиколотки'), ('бежал', 'бежать в прошедшем времени'), ('марафон', 'гонка бегунов длиной около 26 миль'), ('туфли', 'туфля во множественном числе')]
Итерация через словарьВы можете провести итерацию по каждому ключу в словаре. for key in story_count: print(key) Очевидно, вместо story_count можно использовать story_count.keys(). В примере кода ниже ниже цикл for использует метод items() для получения пары «ключ — значение» на каждую итерацию. >>> for key, value in dictionary.items(): print(key, value) ('персона', 'человек') ('бежать', 'двигаться со скоростью') ('туфля', 'род обуви, закрывающей ногу не выше щиколотки') ('бежал', 'бежать в прошедшем времени') ('марафон', 'гонка бегунов длиной около 26 миль') ('туфли', 'туфля во множественном числе') О словаре и других типах данных Python можно почитать в нашей статье . |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|