从嵌套的dictionary.Python中获取值

2024-04-26 14:56:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从嵌套字典中得到一个值列表

d = {2.5: {2005: 0.3}, 2.6: {2005: 0.4}, 5.5: {2010: 0.8}, 7.5: {2010: 0.95}}

def get_values_from_nested_dict(dic):
    list_of_values = dic.values()
    l = []
    for i in list_of_values:
        a = i.values()
        l.append(a)
    return l

d1 = get_values_from_nested_dict(d)
print(d1)

我的结果:

[dict_values([0.3]), dict_values([0.4]), dict_values([0.8]), dict_values([0.95])]

但我希望清单是:

[0.3,0.4,0.8,0.95]

Tags: ofinfrom列表forget字典def
3条回答

您需要再次遍历内部字典的值,并将每个值附加到输出变量

def get_values_from_nested_dict(dic):
    l = []
    for outer_value in dic.values():
        for value in outer_value.values():
            l.append(value)
    return l

只需对dict的值使用双重理解(相当于嵌套循环):

d = {2.5: {2005: 0.3}, 2.6: {2005: 0.4}, 5.5: {2010: 0.8}, 7.5: {2010: 0.95}}


[y for x in d.values() for y in x.values()]
# [0.3, 0.4, 0.8, 0.95]

你可以这样做

In [97]: d                                                                                                                                                                                                  
Out[97]: {2.5: {2005: 0.3}, 2.6: {2005: 0.4}, 5.5: {2010: 0.8}, 7.5: {2010: 0.95}}

In [98]: list(map(lambda x:list(x.values())[0], d.values()))                                                                                                                                                
Out[98]: [0.3, 0.4, 0.8, 0.95]

相关问题 更多 >