首页 > 解决方案 > 需要一些关于从列表内的字典中删除元素的帮助

问题描述

我想删除内容是字典的列表元素

我创建了一个名为“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")                    

我希望该函数的输出在删除元素时可以正常工作,如果有人可以帮助我,我将不胜感激

标签: python

解决方案


看起来您想found = True在删除项目之前创建,但您引用的是另一个名为flag. 可能还有其他问题,但我在这里看到的最大问题是设置flagTrue而不是found.

此外,您希望在完成后打印某些内容,但您的打印语句位于return操作员之后。调用return将退出您的函数。这意味着永远无法访问打印语句。

因此,总而言之,更改flagfound,然后将 if/else 打印语句移至您之前,否则return lis这些打印将无法执行。


推荐阅读