我有一个dict列表(名为'result')。该列表看起来像这样:
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}}] 我想删除所有的“car”
for item in result[:]: if item['label'] is 'car': result.remove(item) print(result) 但它什么都没改变......我做错了什么?
问题在于比较运算符:更改is为==,一切都将正常工作。
Python有两个比较运算符==和is。乍一看他们似乎是一样的,但实际上他们不是。==根据实际值比较两个变量。相反,is运算符根据对象id比较两个变量,如果两个变量引用同一个对象则返回True。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。