我的字典结构如下所示:
mapping = {'outputs': {'cube1': {'tx': 1.0}}}
我正在迭代它们:
for node, props in mapping['outputs'].items():
for prop, value in props.items():
#Further loops
有没有一种优雅的方法可以将这两个嵌套循环合并为一个?
我希望得到这个结果:
for node, prop, value in nest_loop(mapping['outputs']):
#Further loops
答案 0 :(得分:3)
您可以使用生成器表达式执行类似于嵌套for循环的工作。示例 -
nest_loop = ((a,b,c) for a,x in mapping['outputs'].items() for b,c in x.items())
for node, prop, value in nest_loop:
#Do work
但我更喜欢这个更易读的嵌套循环。
演示 -
>>> mapping = {'outputs': {'cube1': {'tx': 1.0}}}
>>> nest_loop = ((a,b,c) for a,x in mapping['outputs'].items() for b,c in x.items())
>>> for node, prop, value in nest_loop:
... print(node,prop,value)
...
cube1 tx 1.0
答案 1 :(得分:1)
不确定这是否是您想要的:
for node, prop, value in [(node, prop, value) for node, props in mapping["outputs"].items() for prop, value in props.items()]:
print node, prop, value