Перейти к содержимому

Как получить список ключей словаря python

  • автор:

Словари (dict) и работа с ними. Методы словарей

Python 3 логотип

Сегодня я расскажу о таком типе данных, как словари, о работе со словарями, операциях над ними, методах, о генераторах словарей.

Словари в Python — неупорядоченные коллекции произвольных объектов с доступом по ключу. Их иногда ещё называют ассоциативными массивами или хеш-таблицами.

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

Во-вторых, с помощью функции dict:

В-третьих, с помощью метода fromkeys:

В-четвертых, с помощью генераторов словарей, которые очень похожи на генераторы списков.

Теперь попробуем добавить записей в словарь и извлечь значения ключей:

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

Что же можно еще делать со словарями? Да то же самое, что и с другими объектами: встроенные функции, ключевые слова (например, циклы for и while), а также специальные методы словарей.

Методы словарей

dict.clear() — очищает словарь.

dict.copy() — возвращает копию словаря.

classmethod dict.fromkeys(seq[, value]) — создает словарь с ключами из seq и значением value (по умолчанию None).

dict.get(key[, default]) — возвращает значение ключа, но если его нет, не бросает исключение, а возвращает default (по умолчанию None).

dict.items() — возвращает пары (ключ, значение).

dict.keys() — возвращает ключи в словаре.

dict.pop(key[, default]) — удаляет ключ и возвращает значение. Если ключа нет, возвращает default (по умолчанию бросает исключение).

dict.popitem() — удаляет и возвращает пару (ключ, значение). Если словарь пуст, бросает исключение KeyError. Помните, что словари неупорядочены.

dict.setdefault(key[, default]) — возвращает значение ключа, но если его нет, не бросает исключение, а создает ключ со значением default (по умолчанию None).

dict.update([other]) — обновляет словарь, добавляя пары (ключ, значение) из other. Существующие ключи перезаписываются. Возвращает None (не новый словарь!).

dict.values() — возвращает значения в словаре.

Для вставки кода на Python в комментарий заключайте его в теги

Dictionary (Словари)

Словарь (неупорядоченные коллекции из разных объектов с доступом по ключу) создаётся при помощи фигурных скобок, внутри которых указываются пары "ключ-значение" через запятые. Также можно создать пустой словарь и позже добавлять пары. В Python словарь определён в классе dict. Иногда используют термин ассоциативные массивы или хеш-таблицы.

 catDictionary = emptyDictionary = <> 

Другие варианты создания словарей.

С помощью функции dict():

 dictionary = dict(short='dict', long='dictionary') print(dictionary) # numberDict = dict([(1, 3), (2, 9)]) print(numberDict) #

С помощью метода fromkeys():

 noneDictionary = dict.fromkeys(['a', 'b']) print(noneDictionary) # fullDictionary = dict.fromkeys(['a', 'b'], 9) print(fullDictionary) #

И ключи и значения в одном словаре могут быть разных типов (строки, числа).

Ключи и значения могут выводиться в различном порядке, потому что словари, в отличие от списков, не упорядочены (не ранжированы). В словаре нет первого элемента, потому что нет какого-нибудь порядка расположения элементов.

Число пар в словаре можно получить через len.

 print(len(catDictionary)) # 3 

Доступ к значению можно получить через ключ, указанный в квадратных скобках. Если указать неправильный ключ, то вернётся ошибка.

 print(catDictionary["key3"]) # Vaska 

Также можно через метод get().

 val = catDictionary.get("key2") print(val) # Murzik 

При не существующем ключе можно вернуть собственное сообщение.

 val = catDictionary.get("key5", "That key is not found") print(val) 

Проверить, есть ли проверяемый ключ в словаре можно через оператор in. В успешном случае возвращается True или 1, в противном случае возвращается False или 0.

 print("key4" in catDictionary) # 0 print("key1" in catDictionary) # True 

Получить все ключи можно через keys(). Метод возвращает значение типа dict_keys.

 keys = catDictionary.keys() print(list(keys)) 

Получить все значения ключей можно через values(). Метод возвращает значение типа dict_values.

 values = catDictionary.values() print(list(values)) # ['Murzik', 'Vaska', 'Barsik'] 

Получить все ключи со значениями можно через items().

 items = catDictionary.items() print(items) # dict_items([('key2', 'Murzik'), ('key3', 'Vaska'), ('key1', 'Barsik')]) 

Чтобы обновить значение в словаре, нужно указать ключ и новое значение.

 catDictionary["key1"] = "Ryzhik" 

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

 catDictionary["key4"] = "Murka" 

Удалить элемент (ключ-значение) можно через оператор del. Также можно удалить весь словарь.

 del catDictionary["key4"] del catDictionary 

Если мы не хотим удалять сам словарь, а только очистить его от элементов, то воспользуемся методом clear().

 catDictionary.clear() print(catDictionary) # <> 

Выражение favorites1 == favorites2 истинно потому, что словари не упорядочены и считаются эквивалентными, если состоят из одинаковых пар ключ-значение.

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

 favorites1 = favorites2 = favorites1 == favorites2 # True 

Список ключей словаря list(dict.keys()) в Python

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

Метод dict.keys() вернет список-представление dict_keys всех ключей, используемых в словаре dict .

Об операциях, доступных с dict.keys() смотрите "Представления словарей"

Различие в работе списка ключей от представления ключей словаря:

>>> dishes = 'eggs': 2, 'sausage': 1, 'bacon': 1, 'spam': 500> >>> d_keys = dishes.keys() >>> l_keys = list(dishes) # `d_keys` - динамическое представление # ключей словаря `dishes` >>> type(d_keys) # # `l_keys` - простой список # ключей словаря `dishes` >>> type(l_keys) # # удаляем ключи из исходного словаря `dishes` >>> del dishes['bacon'], dishes['spam'] # смотрим количество элементов в # представлении `d_keys` и списке `l_keys` >>> len(d_keys), len(l_keys) # (2, 4) # представление `d_keys` # динамически изменилось >>> 'bacon' in d_keys # False # список ключей словаря `l_keys` # остался неизменным >>> 'bacon' in l_keys # True >>> d_keys # dict_keys(['eggs', 'sausage']) >>> l_keys # ['eggs', 'sausage', 'bacon', 'spam'] 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Представления словарей dict.keys, dict.values и dict.items
  • Исходный словарь для представления dictview.mapping
  • Получение списка ключей словаря list(dict)
  • Количество элементов в словаре len(dict)
  • Доступ к значению словаря по ключу dict[key]
  • Добавление/изменение значения словаря по ключу key
  • Удаление значения словаря по ключу
  • Проверка наличия/отсутствия ключа key в словаре dict
  • Проверка наличия/отсутствия значения value в словаре Python
  • Проверка наличия/отсутствия пары (key, value) в словаре dict
  • Итерирование по ключам и значениям словаря Python
  • Метод dict.clear(). Очистить словарь
  • Метод dict.copy(), копия словаря
  • Метод dict.fromkeys(), словарь с ключами по умолчанию
  • Метод dict.get(), значение по умолчанию если ключа нет
  • Метод dict.items(), список кортежей
  • Метод dict.keys(), список ключей словаря
  • Метод dict.values(), список значений словаря
  • Метод dict.pop()
  • Метод dict.popitem(), получить пару ключ/значение
  • Метод dict.setdefault(), получает/вставляет значение ключа
  • Метод dict.update(), обновление/дополнение словаря
  • Объединение двух словарей в новый словарь Python
  • Сортировка словаря по значению и/или ключу
  • Обратный порядок/реверс словаря reversed(dict)
  • Генератор словаря и его использование
  • Фильтр словаря по ключам и/или значениям
  • Словарь как фабрика функций

Метод dict.keys() в Python, список ключей словаря

Получить список-представление всех ключей словаря dict

Синтаксис:
dict.keys() 
Параметры:
  • dict - словарь.
Возвращаемое значение:
  • dict_keys - новый список-представление ключей.
Описание:

Метод dict.keys() возвращает новый список-представление всех ключей dict_keys , содержащихся в словаре dict .

Список-представление ключей dict_keys , является динамичным объектом. Это значит, что все изменения, такие как удаление или добавление ключей в словаре сразу отражаются на этом представлении.

Дополнительно смотрите какие операции поддерживают списки-представления словарей dict

Пример получения списка-представления всех ключей словаря:

>>> x = 'one': 1, 'two': 2, 'three': 3, 'four': 4> >>> keys = x.keys() >>> keys # dict_keys(['one', 'two', 'three', 'four']) # Производим операции со словарем 'x', а все # отражается на списке-представлении `keys` >>> x['ten'] = 10 >>> keys # dict_keys(['one', 'two', 'three', 'four', 'ten']) >>> del x['three'] >>> keys # dict_keys(['one', 'two', 'four', 'ten']) >>> x #
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Представления словарей dict.keys, dict.values и dict.items
  • Исходный словарь для представления dictview.mapping
  • Получение списка ключей словаря list(dict)
  • Количество элементов в словаре len(dict)
  • Доступ к значению словаря по ключу dict[key]
  • Добавление/изменение значения словаря по ключу key
  • Удаление значения словаря по ключу
  • Проверка наличия/отсутствия ключа key в словаре dict
  • Проверка наличия/отсутствия значения value в словаре Python
  • Проверка наличия/отсутствия пары (key, value) в словаре dict
  • Итерирование по ключам и значениям словаря Python
  • Метод dict.clear(). Очистить словарь
  • Метод dict.copy(), копия словаря
  • Метод dict.fromkeys(), словарь с ключами по умолчанию
  • Метод dict.get(), значение по умолчанию если ключа нет
  • Метод dict.items(), список кортежей
  • Метод dict.keys(), список ключей словаря
  • Метод dict.values(), список значений словаря
  • Метод dict.pop()
  • Метод dict.popitem(), получить пару ключ/значение
  • Метод dict.setdefault(), получает/вставляет значение ключа
  • Метод dict.update(), обновление/дополнение словаря
  • Объединение двух словарей в новый словарь Python
  • Сортировка словаря по значению и/или ключу
  • Обратный порядок/реверс словаря reversed(dict)
  • Генератор словаря и его использование
  • Фильтр словаря по ключам и/или значениям
  • Словарь как фабрика функций

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *