如何在Python中从字典列表中删除项目

时间:2019-07-16 11:16:33

标签: python loops

我有一个字典列表(名为“结果”)。该列表如下所示:

result=[{'label': 'person', 'confidence': 0.8308641, 'topleft': {'x': 1236, 'y': 335}, 'bottomright': {'x': 1439, 'y': 784}}, 
{'label': 'car', 'confidence': 0.510271, 'topleft': {'x': 281, 'y': 499}, 'bottomright': {'x': 359, 'y': 543}}]

我要删除所有“汽车”项目

for item in result[:]:
     if item['label'] is 'car':
        result.remove(item)
print(result)

但是它什么也没改变...我做错了什么?

2 个答案:

答案 0 :(得分:2)

使用==!=进行字符串比较。您可以在此处使用简单的列表理解。

例如:

result=[{'label': 'person', 'confidence': 0.8308641, 'topleft': {'x': 1236, 'y': 335}, 'bottomright': {'x': 1439, 'y': 784}},{'label': 'car', 'confidence': 0.510271, 'topleft': {'x': 281, 'y': 499}, 'bottomright': {'x': 359, 'y': 543}}]

result = [i for i in result if i["label"] != 'car']
print(result)

答案 1 :(得分:1)

问题出在比较运算符中:将is更改为==,一切都会正常工作。

  

Python具有两个比较运算符==is。乍一看,它们似乎是相同的,但实际上并非如此。 ==根据两个变量的实际值进行比较。相反,is运算符根据对象ID比较两个变量,如果两个变量引用相同的对象,则返回True