list根据两个字段去重
时间: 2023-07-04 16:16:48 浏览: 118
FOXPRO 常用命令
可以使用Python中的set数据结构和lambda表达式来实现根据两个字段去重。假设有一个包含字典元素的列表,其中每个字典元素包含两个字段:field1和field2,代码如下:
```
lst = [{'field1': 'a', 'field2': 1},
{'field1': 'b', 'field2': 2},
{'field1': 'a', 'field2': 1},
{'field1': 'c', 'field2': 3},
{'field1': 'b', 'field2': 2}]
```
可以使用以下代码实现根据字段field1和field2去重:
```
unique_lst = list(set((frozenset(d.items()) for d in lst)), key=lambda x: (x['field1'], x['field2']))
result = [dict(item) for item in unique_lst]
```
这里使用了frozenset来将字典转换为不可变的集合,然后将这些集合放入set中去重,并按照两个字段的顺序进行排序。最后,再将结果转换为字典列表的格式。
阅读全文