python - 尝试从循环中的字典中弹出 KV 对时出错
问题描述
我有一本看起来像这样的字典:
{'1A': {'White Bread loaf large': 1, 'Brown Bread loaf large': 1, 'Skimmed Milk Pint': 1, 'Cheddar Cheese Medium 300g': 1, 'Tomatoes Fresh Vine 500g': 1, 'Carrots 1Kg': 1, 'Potatoes 600g': 1, 'Bacon 300g': 1, 'Eggs Free Range Medium 12': 1, 'Ham 300g': 1, 'Frozen Peas 800g': 1, 'Kitchen Roll 200 Sheets': 1},
'1B': {'Brown Bread loaf large': 1, 'Bread Sliced White large': 1, 'Skimmed Milk Pint': 1, 'Cheddar Cheese Mature 300g': 1, 'Tomatoes Plum Can 500g': 1, 'Carrots 1Kg': 1, 'Potatoes 600g': 1, 'Rice White 500g': 1, 'Rice Brown 500g': 1, 'Butter 500g': 1, 'Bacon 300g': 1, 'Ham 300g': 1, 'Frozen Peas 800g': 1, 'Fresh onions 300g': 1, 'Tea Bags 50 pack': 1},...
我正在尝试删除密钥等于“Rice Brown 500g”的所有 KV 对。
这就是我尝试这样做的方式:
for i in list(my_dict):
for n in my_dict[i]:
if n == 'Rice Brown 500g':
my_dict.pop(n)
我也尝试过使用del my_dict[n]
我不断收到此错误:KeyError: 'Rice Brown 500g'
我不知道还有什么可以尝试的。提前致谢
解决方案
我会建议一种更简单、更 Pythonic 的方式来遍历主字典中的子字典:
for v in my_dict.values():
v.pop('Rice Brown 500g', None)
这可以解决问题,每个 v 都是子目录之一,pop() 的第二个参数可以防止 KeyError。
推荐阅读
- javascript - 仅在 iPhone 上返回结果中的croppie.js 空白图像
- python - 水平连接两个图像 - 结果为一个黑色图像
- excel - 在 Excel 表中计算现金余额的宏
- reactjs - 由 useMediaQuery 引起的延迟文本字段?
- web-scraping - 如何关闭scrapy中的pypeeter登录?
- python - 如何使用 FFmpeg 从视频中剪切/删除特定的未解码 h.264(关键)帧?
- c# - 使用 LINQ 在包含负数和正数的列中查找负数的平均值
- javascript - 多维数组替换为近距离 Javascript
- c# - EF Core 多线程问题
- ios - 如何设置背景显示全屏?