python - 需要一些关于从列表内的字典中删除元素的帮助
问题描述
我想删除内容是字典的列表元素
我创建了一个名为“del_product(product):”的函数,并尝试了多种删除元素的方法,但最终出现 KeyError
def del_product(product):
found=False
for lis in productos:
for dic in lis.values():
if product in lis.values():
flag=True
del(lis[product])
return lis
print(f"{product} deleted successfully") if found==True else print("{product} not found")
我希望该函数的输出在删除元素时可以正常工作,如果有人可以帮助我,我将不胜感激
解决方案
看起来您想found = True
在删除项目之前创建,但您引用的是另一个名为flag
. 可能还有其他问题,但我在这里看到的最大问题是设置flag
为True
而不是found
.
此外,您希望在完成后打印某些内容,但您的打印语句位于return
操作员之后。调用return
将退出您的函数。这意味着永远无法访问打印语句。
因此,总而言之,更改flag
为found
,然后将 if/else 打印语句移至您之前,否则return lis
这些打印将无法执行。
推荐阅读
- ruby-on-rails - 在 Rails 代码中使用 SimpleCov 在 MiniTest 中获取所有错误和失败的测试用例
- shell - 更改红帽终端颜色?
- c# - 如何修复 odooWrapper 上的 faultCode not int 或 string 错误
- node.js - 带有nodejs的mongodb通过聚合查找上周的数据
- leaflet - 传单如何更改标记交互性
- blazor - 在 Blazor WebAssembly 应用程序的 Program.Main 中获取服务器 URL
- powerbi - 如果以前的员工更改了工作地点,但他们指定了我,如何更改当前 PowerBi 仪表板的所有者?
- numpy - 通过添加另一个数组作为新维度来扩展数组
- python - 我无法为烧瓶安装 mysql 模块
- html - 将 mat-form-field 与引导列中的中心线对齐