好吧,不知道如何解释这个问题,但这里是。
这是我的字典 myDictionary = {'12/2019' : [{'1003' : 2}, {'1040' : 3}]}
我正在尝试列出 '1003'、'1040'。
我试过用这个方法:
for i in range(len(a['12/2019'])):
print(a['12/2019'][i].keys())
它有点工作,但它返回我
dict_keys(['1003'])
dict_keys(['1040'])
有没有办法让 1030 和 1040 与 ... dict_keys(['']) 隔离?
请您参考如下方法:
您可以遍历字典的值,如果该值是列表,则遍历列表中的字典,并将所有键附加到结果
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()]
