从字典列表中的字典键获取列表

2024-06-16 12:09:00 发布

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

我有一份字典清单。e、 克:

list = [ {list1}, {list2}, .... ]

每个字典中的一个键值对是另一个字典。 前

list1 = { "key1":"val11", "key2":"val12", "key3":{"inkey11":"inval11","inkey12":"inval12"} }
list2 = { "key1":"val21", "key2":"val22", "key3":{"inkey21":"inval21","inkey22":"inval22"} }

我想把所有字典中的key3的所有值都放到一个列表中。 是否可以直接访问它们(比如list[]["key3"]),或者我们需要遍历所有元素来形成列表?你知道吗

我试过了

requiredlist = list [ ] ["key3"].

但它不起作用。 我想要的最终结果是

requiredlist = [ {"inkey11":"inval11","inkey12":"inval12"}, {"inkey21":"inval21","inkey22":"inval22"} ]


Tags: 字典listkey2key1key3list2list1inval22
3条回答

要访问字典中的元素,必须执行以下操作:

dict_name[key_name] #in this case: list1[key3]

试试这个:

newlist = []
list = [{ "key1":"val11", "key2":"val12", "key3":{dict1} },{ "key1":"val21", "key2":"val22", "key3":{dict1} }]
for innerdict in list:
    newlist += list(innerdict["key3"]) 
print newlist #This will give all the values of key3 in all the dictionaries

如果列表中的dict1是一个集合,那么上面的示例将很好地工作,但是如果它是一个字典,那么它将给出一个列表,但是只包含键,因此如果它是一个字典,请尝试以下操作:

newlist = []
list = [{ "key1":"val11", "key2":"val12", "key3":{dict1} },{ "key1":"val21", "key2":"val22", "key3":{dict1} }]
for innerdict in list:
    newlist.append(innerdict["key3"]) 
print newlist #This will give all the values of key3 in all the dictionaries

我认为list comprehension在这里很管用:

[innerdict["key3"] for innerdict in list]

试试这个:

list1["key3"]

请注意,您定义的list1list2是字典,而不是列表,"key3"的值是一个集,而不是列表。你把{}[]混淆了,它们有不同的含义。你知道吗

相关问题 更多 >