python - 将列表中的元素添加到字典并增加值
问题描述
我有字典和清单。列表仅包含项目,字典包含项目以及我有多少给定项目。我要做的是遍历字典和列表,如果字典中的键与列表中的项相同,我只想将其值更新1,但如果没有我想要的相同项将项目表单列表添加到 dict 并将其值设置为 1。
stock = {apple: 1, banana: 4, orange: 10}
delivery = [apple, apple, grapefruit]
for k, v in stock.items():
for item in delivery:
if item == stock[k]:
stock[v] += 1
else:
stock.update({item:1})
输出应该是这样的:
stock = {apple: 3, banana: 4, orange: 10, grapefruit: 1}
但是我收到消息:字典在迭代期间更改了大小
解决方案
您不应该更改dict
或list
迭代它。您可以编写如下代码:
stock = {'apple': 1, 'banana': 4, 'orange': 10}
delivery = ['apple', 'apple', 'grapefruit']
for item in delivery:
if item in stock:
stock[item] +=1
else:
stock[item] = 1
print(stock)
推荐阅读
- django - 如何从 Django 中的嵌套 M2M 字段中查询记录?
- c++ - BigInt 乘法和 to_string 实现输出太多零
- flutter - 如何使用 Google 移动广告显示静态横幅广告并使用 SafeArea 小部件包装它?
- label - 从包含子文件夹的文件夹生成标签 y 从子文件夹和 nparray 作为 Python 中的 X
- node.js - Axios 无法使用 nodejs 14 在 Firebase 功能上安装
- c# - 如何在 NewQuestion 按钮中获取检查变量以更改表单检查变量
- java - 尝试使用 Mac2 作为驱动程序运行 OpenTest 测试
- java - 当我尝试更改像素颜色时如何在 Android 上修复 IlegalStateException
- r - 将多个数据帧复制到 R 中的 SQLite db
- amazon-web-services - 使用一个应用程序登录访问另一个使用 AWS 构建的应用程序(都在同一个域上)