Python:遍历多个字典

Python:遍历多个字典,python,python-2.7,dictionary,Python,Python 2.7,Dictionary,我有三张清单,每一张都有字典。我将获得某些键的值,并希望保存该值的最小操作的结果。下面的代码给出了一个错误:TypeError:list索引必须是整数,而不是dict import numpy as np import itertools humidity = [{'high': 90, 'middle': 50, 'low': 10}, {'high': 75, 'middle': 40, 'low': 5} ] temperature =[{'warm': 35, 'normal':

我有三张清单,每一张都有字典。我将获得某些键的值,并希望保存该值的最小操作的结果。下面的代码给出了一个错误:TypeError:list索引必须是整数,而不是dict

import numpy as np
import itertools


humidity = [{'high': 90, 'middle': 50, 'low': 10}, {'high': 75, 'middle': 40, 'low': 5} ]

temperature =[{'warm': 35, 'normal': 20, 'cold': 5 }, {'warm': 40, 'normal': 18, 'cold': 10 }]

wind = [{'breeze': 25, 'gale': 100}, {'breeze': 20, 'gale': 90}]

results=[]
for h, t, w in itertools.izip(humidity, temperature, wind):

  results.append(np.fmin (humidity[h]['high'], np.fmin( temperature[t]['normal'], wind[w]['breeze']) ) )
但是如果我在控制台中编写(Spyder,python 2.7):

我得了20分,这是真的。但是为什么我不能反复阅读整个词典呢?怎么了


非常感谢您的回答/想法

您需要引用
h、t、w
变量,而不是原始列表

results.append(np.fmin (h['high'], np.fmin( t['normal'], w['breeze']) ) )
因为
h,t,w
是从zip中解压出来的字典,而不是
int
s,所以您不能使用它们来索引列表

从视觉上看,
湿度[h]['high']
看起来像

humidity[{'high': 90, 'middle': 50, 'low': 10}]['high']

这在语法上没有意义

谢谢!它只是工作!但是,如果我给出整数值,您如何解释它在控制台中工作的原因?我的意思是在案例2中,比如湿度[0]['high']@lara当然。当您在itertools中键入
h、t、w…
时,您正在解压由
itertools.izip压缩的元组。如果您不熟悉它,请阅读它的功能描述。如果您不想将所有内容压缩在一起,只需在enumerate(湿度)中对索引执行
,然后通过
湿度[index][key]访问每个列表。。。。温度[索引][键]…
等,因为范围将返回数字,直到您传递的列表长度为止。当然,这是基于风、温度和湿度总是相同长度的假设这个错误花费了我很多时间!
humidity[{'high': 90, 'middle': 50, 'low': 10}]['high']