我是python的新手。我有一个嵌套字典,如(k1,(t1,v1))。我想有效地遍历每个v1值。
所以我要说我的词典是my_dict。我想使用flattener或字典理解有效地访问k,x,y两个for循环。请让我知道最佳做法。
for k, v in my_dict.iteritems():
inner_dict = my_dict.get(k)
for x, y in inner_dict.iteritems():
print(k, x , y )
答案 0 :(得分:3)
如果您只对值感兴趣,则无需循环项目:
flattened_values = (v for dct in my_dict.itervalues() for v in dct.itervalues())
for value in flattened_values:
print(value)
修改强>:
根据您的编辑,您也需要密钥。在这种情况下,除了冗余的inner_dict = my_dict.get(k)
之外,您的代码就可以了,这基本上只是v
。同样的单行看起来像这样:
for v in ((k1, k2, v2) for k1, v1 in my_dict.iteritems() for k2, v2 in v1.iteritems()):
print(v)