两个列表嵌套字典相减
时间: 2023-09-14 11:09:33 浏览: 106
列表的嵌套
如果两个列表中的元素是字典,可以按照字典相减的方法进行操作,可以使用列表推导式或者使用函数式编程的方式实现,具体方法如下:
1. 列表推导式
假设有两个嵌套字典的列表A和B,要求A-B,即求A中去除B中元素后的列表。可以使用列表推导式实现,代码如下:
```python
A = [{'a': 1, 'b': 2}, {'a': 3, 'b': 4}, {'a': 5, 'b': 6}]
B = [{'a': 3, 'b': 4}, {'a': 5, 'b': 6}]
C = [a for a in A if a not in B]
print(C) # 输出 [{'a': 1, 'b': 2}]
```
这里使用列表推导式,遍历A中的每个元素,如果该元素不在B中,就将它加入到结果列表C中。
2. 函数式编程
另一种实现方法是使用函数式编程的方式,可以使用filter()函数和lambda表达式实现,代码如下:
```python
A = [{'a': 1, 'b': 2}, {'a': 3, 'b': 4}, {'a': 5, 'b': 6}]
B = [{'a': 3, 'b': 4}, {'a': 5, 'b': 6}]
C = list(filter(lambda x: x not in B, A))
print(C) # 输出 [{'a': 1, 'b': 2}]
```
这里使用filter()函数筛选出A中不在B中的元素,并将结果转换成列表类型。需要注意的是,lambda表达式中的x代表A中的每个元素。
阅读全文