Как я могу извлечь все значения из словаря в Python?

177

У меня есть словарь d = {1:-0.3246, 2:-0.9185, 3:-3985, ...}.

Как извлечь все значения dв список l?

Навин С.
источник

Ответы:

339

Если вам нужны только ключи словаря 1, 2и 3использование: your_dict.keys().

Если вам нужно только словарные значения -0.3246, -0.9185и -3985использование: your_dict.values().

Если вы хотите и ключи, и значения, используйте:, your_dict.items()который возвращает список кортежей [(key1, value1), (key2, value2), ...].

Пьер Бурдон
источник
64
Если вы используете Python 3, вы можете использовать его list(your_dict.values())для получения списка (а не объекта dict_values).
Матиас Браун
40

использование values()

>>> d = {1:-0.3246, 2:-0.9185, 3:-3985}

>>> d.values()
<<< [-0.3246, -0.9185, -3985]
zeekay
источник
16

Если вы хотите все значения, используйте это:

dict_name_goes_here.values()

Если вы хотите все ключи, используйте это:

dict_name_goes_here.keys()

Если вам нужны все элементы (и ключи, и значения), я бы использовал это:

dict_name_goes_here.items()
Тайлер Кромптон
источник
12

Вызовите values()метод по диктовке.

Дэвид Хеффернан
источник
9

Для вложенных диктов, списков диктов и диктов перечисленных диктов ... вы можете использовать

def get_all_values(d):
    if isinstance(d, dict):
        for v in d.values():
            yield from get_all_values(v)
    elif isinstance(d, list):
        for v in d:
            yield from get_all_values(v)
    else:
        yield d 

Пример:

d = {'a': 1, 'b': {'c': 2, 'd': [3, 4]}, 'e': [{'f': 5}, {'g': 6}]}

list(get_all_values(d)) # returns [1, 2, 3, 4, 5, 6]

PS: люблю yield. ;-)

Майкл Дорнер
источник
7

Для Python 3 вам нужно:

list_of_dict_values = list(dict_name.values())
Фаиз Кадри
источник
Спасибо за упоминание того, что метод list()необходим
жа Саббир Ахмед
5

Если вы хотите все значения, используйте это:

dict_name_goes_here.values()
Говинд Сагар
источник
3

Чтобы увидеть ключи:

for key in d.keys():
    print(key)

Чтобы получить значения, на которые ссылается каждый ключ:

for key in d.keys():
    print(d[key])

Добавить в список:

for key in d.keys():
    mylist.append(d[key])
Одиссей Итака
источник
Понимание
list = [d [key] для ключа в d.keys ()]
DeafaltCoder
0

Pythonic duck-typing должен в принципе определить, что может делать объект, то есть его свойства и методы. Глядя на объект словаря, можно попытаться угадать, что у него есть хотя бы один из следующих: dict.keys()или dict.values()методов. Вы должны попытаться использовать этот подход для будущей работы с языками программирования, чья проверка типов происходит во время выполнения, особенно с типом утиной типизации.

dr_dronych
источник
0
dictionary_name={key1:value1,key2:value2,key3:value3}
dictionary_name.values()
Shriyans
источник