如何从Python中的字典中提取所有值?


180

我有字典d = {1:-0.3246, 2:-0.9185, 3:-3985, ...}

如何将的所有值提取d到列表中l

Answers:


347

如果你只需要字典的键123使用:your_dict.keys()

如果你只需要在字典中的值-0.3246-0.9185-3985使用:your_dict.values()

如果您想同时使用键和值,请使用:your_dict.items()返回一个元组列表[(key1, value1), (key2, value2), ...]


74
如果您使用的是Python 3,则需要使用它list(your_dict.values())来获取列表(而不是dict_values对象)。
Matthias Braun

42

使用 values()

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

>>> d.values()
<<< [-0.3246, -0.9185, -3985]

17

如果需要所有值,请使用以下命令:

dict_name_goes_here.values()

如果需要所有键,请使用以下命令:

dict_name_goes_here.keys()

如果您想要所有项目(键和值),则可以使用以下命令:

dict_name_goes_here.items()



11

对于嵌套字典,字典列表和列出字典的字典,...您可以使用

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。;-)





0

Python的鸭式输入原则上应确定对象可以执行的操作,即其属性和方法。通过查看字典对象,可以尝试猜测它是否具有以下至少一项:dict.keys()dict.values()方法。您应该尝试将这种方法用于将来在运行时会进行类型检查的编程语言,尤其是具有鸭式语言的语言。


0
dictionary_name={key1:value1,key2:value2,key3:value3}
dictionary_name.values()
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.