我有一个字典列表(名为“结果”)。该列表如下所示:
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)
但是它什么也没改变...我做错了什么?
答案 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
。