gpt4 book ai didi

所有词典中的 Python 打印键

转载 作者:太空狗 更新时间:2023-10-30 02:18:12 25 4
gpt4 key购买 nike

如果我有一个包含这些词典的文件:

{
"dict1" : {
"data1" : "a",
"data2" : "b",
"data3" : "c",
"data4" : "d",
"data5" : "e"
},
"dict2" : {
"data1" : "f",
"data2" : "g",
"data3" : "h",
"data4" : "i",
"data5" : "j"
}

我将如何访问每个字典键“data3”。这样输出将是:

c, h

因为文件中有多个词典,所以我不知道名字。无论如何要遍历它们以提取这些 key ?

最佳答案

>>> ', '.join(subdict['data3'] for subdict in maindict.values())
'c, h'

解释:

您的数据是一个字典 maindict,其中的键是 'dict1''dict2'

>>> for key in maindict.keys():
... print key
dict1
dict2

我们对键不感兴趣,但想要值(实际上是另外两个字典):

>>> for value in maindict.values():
... print value
{"data1" : "a",
"data2" : "b",
"data3" : "c",
"data4" : "d",
"data5" : "e"}
{"data1" : "f",
"data2" : "g",
"data3" : "h",
"data4" : "i",
"data5" : "j"}

获取键'data3'对应的子字典中的值:

>>> for subdict in maindict.values():
... print subdict['data3']
c
h

你说你想要一个逗号分隔的结果。 str.join允许您使用其他字符作为分隔符来连接一系列字符串:

>>> ', '.join(['William', 'Shatner', 'Speaks', 'Like', 'This'])
'William, Shatner, Speaks, Like, This'

拼图的最后一 block 是我们可以使用 generator expression 动态生成序列创建生成器:

>>> results = (subdict['data3'] for subdict in maindict.values())
>>> results
<generator object <genexpr> at 0x03115710>

您可以在需要序列的任何地方传递生成器:

>>> list(results)
['c', 'h']

因此,我们使用带有 str.join 的生成器表达式:

>>> ', '.join(subdict['data3'] for subdict in maindict.values())
'c, h'

关于所有词典中的 Python 打印键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36947503/

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