假设我有这个嵌套字典,如下所示。是否有一种pythonic方式同时迭代外部和内部字典的键和值?
我目前正在执行:
for outer_key, outer_value in outer.items():
for inner_key, inner_value in outer_value.items():
#my required processing
只是想知道是否有更好,更快的方法来做到这一点?使用字典理解,比正常方法更快的执行,节省内存等(当它应用于巨大的dicts时)更快?
{'68299-6030-885-42-4-54603-20645-15734': {'0-0-0-0-0-0-0-0': {'service_latency': 9.815000000000001,
'service_cost': 58.78,
'service_bandwidth': 247.36}},
'68299-6030-885-431-43303-80233-26504-15734': {'0-0-0-0-0-0-0-0': {'service_latency': 10.706,
'service_cost': 50.06,
'service_bandwidth': 362.88}},
'68299-6030-885-42-79805-13540-5668-15734': {'0-0-0-0-0-0-0-0': {'service_latency': 12.66,
'service_cost': 75.19,
'service_bandwidth': 707.74}},
'68299-6030-90241-3290-2033-5668-15734': {},
'68299-73365-46658-104-10-6685-29853-44799': {'0-0-0-0-0-0-0-0': {'service_latency': 12.427,
'service_cost': 44.949999999999996,
'service_bandwidth': 232.89}}}
答案 0 :(得分:2)
some_dict.items()
是同时访问密钥和值的合适方法.items()
没有创建列表。 dict
的巨大程度并不重要:在迭代.items()
.items()
在Python 3上返回a view。在迭代它们时,您不应该尝试更改outer
,outer_value
词典。
如果您无法更改输入数据结构,那么您的代码就可以了。