python - 循环遍历列表和嵌套字典
问题描述
我认为标题是正确的。如果没有,我道歉。
我aList
定义为
[24, 19, 18, 15, 15, 23, 18, 15, 18, 15]
并aDict
定义为
{'1': 18, '2': 76, '3': 0, '4': 13, '5': 4, '6': 30, '7': 25, '8': 21}
和一个masterDict
定义(用 0 初始化)为
{'1': 0, '2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0, '8': 0}
如何检查中的每个元素是否aList
与中的值匹配aDict
?如果是,则将相应的键masterDict
加 1?
我目前使用的代码是
for x in aList:
for k, v in aDict.iteritems():
if x == v:
masterDict[k] = +1
但是,这将返回一个masterDict
看起来像这样的
{'1': 1, '2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0, '8': 0}
aList
包含该元素的三个匹配项,18
并且它与 中的一个值匹配aDict
。我希望将相应的键增加masterDict
三倍。但是,它只会增加一次。
我希望产生的输出是
{'1': 3, '2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0, '8': 0}
解决方案
这是因为您的代码中的拼写错误 - 应该masterDict[k] += 1
代替masterDict[k] = +1
更改后的输出是:{'1': 3, '2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0, '8': 0}
推荐阅读
- java - Java 写入 Windows Server 2016 时文件上次修改未更新
- docker - 如何在docker中添加文件
- html - 有什么方法可以将自定义的 Css 应用于 PowerBI 中的不同控件
- ruby-on-rails - 无法使用 Rails 和 Wicked PDF 打印换行符
- python-3.x - Go strings.Contains() 比 Python3 慢 2 倍?
- r - 编辑 shiny.tag 元素
- kubernetes - 如何获得 Kubernetes 的单个 pod 名称?
- windows - Redmon 以用户 SYSTEM 而不是当前用户身份启动应用程序
- c# - 在运行时隐藏 PropertyGrid 中的一些属性
- amazon-web-services - 访问没有区域端点的 amazon s3 存储桶