我有一个词典列表。 e.g:
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"} ]
答案 0 :(得分:3)
我认为list comprehension在这里效果很好:
[innerdict["key3"] for innerdict in list]
答案 1 :(得分:1)
试试这个:
list1["key3"]
请注意,您定义的list1
和list2
是词典,而不是列表 - "key3"
的值是集,而不是列表。你将{}
与[]
混为一谈,它们有不同的含义。
答案 2 :(得分:0)
要访问元素是一个字典,您必须执行以下操作:
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