Python:遍历多个字典

2024-04-28 15:11:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有三张单子,每一张都有字典。我将获得某些键的值,并希望保存此值的min操作的结果。以下代码给出一个错误:TypeError:列表索引必须是整数,而不是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,Python2.7):

^{pr2}$

我得了20分,这是真的。但是为什么我不能把所有的字典都重读一遍呢?怎么了?在

非常感谢您的回答/想法!在


Tags: importmiddle字典nplowwindnormalitertools
1条回答
网友
1楼 · 发布于 2024-04-28 15:11:52

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

results.append(np.fmin (h['high'], np.fmin( t['normal'], w['breeze']) ) )

因为h,t,w是从您的zip解压的字典,而不是{},所以您不能使用它们来索引列表

显然,humidity[h]['high']看起来像

^{pr2}$

在句法上没有意义

相关问题 更多 >