现有list1和list2,根据code和name两个字段将list1中包含list2的数据排除
时间: 2024-09-09 14:04:11 浏览: 46
在Python中,你可以通过列表推导式或者`filter()`函数结合字典推导式来实现这个功能。假设`list1`是一个字典列表,而`list2`也是一个包含`code`和`name`键值对的列表,你想从`list1`中移除那些在`list2`中存在的项目,可以这样做:
```python
# 假设 list1 和 list2 的结构如下:
list1 = [
{"code": 1, "name": "A", "other_field": "value"},
{"code": 2, "name": "B", "other_field": "another_value"},
# 更多项...
]
list2 = [
{"code": 1, "name": "A"},
{"code": 3, "name": "C"},
]
# 使用列表推导式
filtered_list1 = [item for item in list1 if not (item.get("code") and item.get("name") in [d["code"], d["name"]] for d in list2)]
# 或者使用 filter() 函数
filtered_list1 = list(filter(lambda x: not any(x.get("code") == d["code"] and x.get("name") == d["name"] for d in list2), list1))
# 现在 filtered_list1 就是去除了 list2 中 code 和 name 对应项后的 list1
```
阅读全文