Python减少嵌套字典中的嵌套循环

我的字典结构如下所示:

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
最佳答案
您可以使用生成器表达式来执行类似于嵌套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

转载注明原文:Python减少嵌套字典中的嵌套循环 - 代码日志