python - 访问嵌套在列表中的字典中的值
问题描述
这里的第一个问题!
countries = [{'country': 'Italy', 'size':3,'reg':9},
{'country': 'Germany', 'size':7,'reg':1},
{'country': 'USA', 'size':9,'reg':4},
]
weights = {'size' : 100, 'reg' : 30}
我正在尝试将“国家”嵌套字典中的值与“权重”字典中与匹配键关联的值相乘。我尝试了一种 for 循环方法,因为“权重”中的值将由用户更新。
我试过这个:
countries_weighted = copy.deepcopy(countries)
for key in weights.items():
for i in countries_weighted:
countries_weighted[i][key] *= weights[key]
这似乎不起作用:
-
TypeError Traceback (most recent call last)
<ipython-input-52-9753dabe7648> in <module>()
13 for key in weights.items():
14 for i in countries_weighted:
---> 15 countries_weighted[i][key] *= weights[key]
16
TypeError: list indices must be integers or slices, not dict
任何想法?提前致谢。
解决方案
你可以这样做:
countries = [{'country': 'Italy', 'size':3,'reg':9},
{'country': 'Germany', 'size':7,'reg':1},
{'country': 'USA', 'size':9,'reg':4},
]
weights = {'size' : 100, 'reg' : 30}
for country in countries:
for key in weights.keys():
country[key] *= weights[key]
print(countries)
推荐阅读
- python - 将具有偶数个条目的列表分成两半是无效索引
- arrays - 如何在投影(项目)中删除值为null的数组元素,mongodb
- r - R Shiny:如果先前的输入不为空,则显示一个新的操作按钮,如果为空则消失
- sequelize.js - sequelize:除一张表外未生成索引
- kubernetes - Istio 是否允许配置断路器打开的最大响应超时?如何?
- python - 无法在 json 正文中打印特定字段
- c# - 列表框中没有扩展名的文件
- r - tidyr::gather 生成具有重复列名的 data.frames
- amazon-web-services - 在 .ebextensions 中调试 PowerShell 脚本
- javascript - 如何根据现有数据点动态预选多个选项