gpt4 book ai didi

python - 在字典中的字典中获取值

转载 作者:太空宇宙 更新时间:2023-11-04 03:30:14 24 4
gpt4 key购买 nike

我可能没有写出最好的代码,但假设我在字典中有一个字典,其输出如下所示:

print node
> {
> 0: {'NODE': 'CLOUDY', 'GATE': 'EQUAL', 'PROB': 0.5},
> 1: {'NODE': 'RAIN', 'CPT_1': 0.2, 'CPT_0': 0.8, 'GATE': 'OR', 'PROB': 0.5, 'PNODE_0': 'Cloudy'},
> 2: {'NODE': 'SPRINKLER', 'CPT_1': 0.9, 'CPT_0': 0.5, 'GATE': 'OR', 'PROB': 0.7, 'PNODE_0': 'Cloudy'},
> 3: {'NODE': 'WETGRASS', 'CPT_3': 0.01, 'CPT_2': 0.1, 'CPT_1': 0.1, 'CPT_0': 1.0, 'GATE': 'OR', 'PROB': 0.5, 'PNODE_0': 'Rain', 'PNODE_1': 'Sprinkler'}
> }

我想看看最终结果:

print string
> ['CLOUDY', 'RAIN', 'SPRINKLER', 'WETGRASS']

到目前为止,我编写此代码是为了获得与上面完全相同的输出。

string = "["
for value in xrange (0, len(node)):
string += "'" + node[value].get("NODE") + "', "
string = string[:-2]
string += "]"
print string

我正在全神贯注地从具有“节点”键的字典中的字典中提取所有值。这可能吗?

最佳答案

只需使用字典中的值:

print([d["NODE"] for d in node.values()])
['CLOUDY', 'RAIN', 'SPRINKLER', 'WETGRASS']

如果 key 可能不在所有字典中,只需使用 in 先检查:

print([d["NODE"] for d in node.values() if "NODE" in d])

node.values() 将为您提供所有指令:

[{'NODE': 'CLOUDY', 'GATE': 'EQUAL', 'PROB': 0.5}, {'NODE': 'RAIN', 'CPT_1': 0.2, 'CPT_0': 0.8, 'GATE': 'OR', 'PROB': 0.5, 'PNODE_0': 'Cloudy'}, {'NODE': 'SPRINKLER', 'CPT_1': 0.9, 'CPT_0': 0.5, 'GATE': 'OR', 'PROB': 0.7, 'PNODE_0': 'Cloudy'}, {'NODE': 'WETGRASS', 'CPT_3': 0.01, 'CPT_1': 0.1, 'CPT_0': 1.0, 'CPT_2': 0.1, 'GATE': 'OR', 'PROB': 0.5, 'PNODE_0': 'Rain', 'PNODE_1': 'Sprinkler'}]

所以你只需从每个中提取。

如果你真的想形成一个看起来像列表的字符串:

 s = "[{}]".format(",".join([d["NODE"] for d in node.values() if "NODE" in d]))

或者简单的:

print(str([d["NODE"] for d in node.values() if "NODE" in d]))

关于python - 在字典中的字典中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31345583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com