列出字典中列表内的所有键。(列表中的词典)

2024-04-26 23:11:51 发布

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

好吧,不知道该怎么解释这个问题,但现在开始。你知道吗

这是我的字典

我想列出'1003', '1040'。你知道吗

我试过使用这种方法:

for i in range(len(a['12/2019'])):
    print(a['12/2019'][i].keys())

不管它如何回报我,它都能工作

dict_keys(['1003'])
dict_keys(['1040'])

我能不能把1030和1040从。。。听写键([“”])?你知道吗


Tags: 方法inforlen字典rangekeysdict
3条回答

可以迭代字典的值,如果值是列表,则迭代列表中的字典,并将所有键附加到结果中

myDictionary = {'12/2019' : [{'1003' : 2}, {'1040' : 3}],
                '11/2019': '1005', '10/2019': 1234,
                '09/2019': [{'1006' : 2}, {'1042' : 3}],
                '08/2019': (1,2)}

keys=[]

#Iterate over values 
for value in myDictionary.values():

    #If value is a list
    if isinstance(value, list):

        #Iterate over the list
        for d in value:

            #Add the keys to the result
            keys.extend(list(d.keys()))

print(keys)

输出将是

['1003', '1040', '1006', '1042']

你也可以通过列表理解来做到这一点,但它不是真正可读的,所以我会避免反对它

[key for value in myDictionary.values() if isinstance(value, list) for d in value for key in d.keys()]

您可以使用列表:

[k for v in myDictionary.values() for x in v for k in x]

代码中:

myDictionary = {'12/2019' : [{'1003' : 2}, {'1040' : 3}]}

print([k for v in myDictionary.values() for x in v for k in x])
# ['1003', '1040']

遍历列表中的子目录,抓住键:

for sub_dict in a['12/2019']:
   for key, val in sub_dict.items():
        print(key)

相关问题 更多 >