好的,不知道如何解释这个问题,但是就行了。
这是我的字典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([''])隔离吗?
答案 0 :(得分:1)
您可以遍历字典的值,如果值是列表,则遍历列表中的字典,并将所有键附加到结果上
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()]
答案 1 :(得分:1)
遍历列表中的子字典,获取关键点:
for sub_dict in a['12/2019']:
for key, val in sub_dict.items():
print(key)
答案 2 :(得分:1)
您可以使用列表理解:
[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']
答案 3 :(得分:1)
您可以通过执行以下操作来做到这一点
data = {'12/2019' : [{'1003' : 2}, {'1040' : 3}]}
# Data is a dictionary of where each value corresponding
# to the key is a list of dictionaries.
for k, v in data.items():
# v is a list of dictionaries
all_keys = []
for value in v:
all_keys.extend(list(value.keys()))
print (all_keys)
结果为['1003', '1040']
答案 4 :(得分:1)
这可能超出了您的需要,但是如果您为该示例共享的数据只是您实际查看的一小部分,则此递归函数可以扩展到您想要的深度。 / p>
由于您似乎想跳过最外层的按键,因此我在一个地方允许您跳过给定深度的按键。您不应该手动设置level参数,因为代码将自行对其进行更新。
List<Int>