我试图在Python中迭代一个多维列表,但它没有按照我的预期行事。
POIs = {'GTA': {'areas': [{'lat': 43.7, 'range': '40km', 'long': -79.416}]}, 'Montreal': {'areas': [{'lat': 45.509, 'range': '40km', 'long': -73.588}]}}
for POI in POIs:
print POI
返回字符串
GTA
Montreal
如果我在Ruby中使用.each做了类似的事情,它会传递散列。 Python和Ruby如何处理数组循环有根本区别吗?或者有没有更好的方法来尝试在Python中实现.each样式迭代?
答案 0 :(得分:1)
如果在迭代字典时需要除键之外的值,请使用.items()
或.iteritems()
。这里重点是你有一个字典,而不是一个多维list
(多维列表看起来像L = [[1, 2, 3], [4, 5, 6]]
)。
POIs = {'GTA': {'areas': [{'lat': 43.7, 'range': '40km', 'long': -79.416}]}, 'Montreal': {'areas': [{'lat': 45.509, 'range': '40km', 'long': -73.588}]}}
for POI, areas in POIs.iteritems():
print POI, areas
<强>输出强>
GTA {'areas': [{'lat': 43.7, 'range': '40km', 'long': -79.416}]}
Montreal {'areas': [{'lat': 45.509, 'range': '40km', 'long': -73.588}]}
答案 1 :(得分:1)
这是字典而不是列表,因此您在示例中打印键。您也可以使用以下代码打印值:
for POI in POIs:
print POI, POIs[POI]