python 一个列表中包含多个对象,删除每个对象中的path属性值重复的对象,其中path类型为列表
时间: 2024-09-23 21:01:30 浏览: 27
Python使用jsonpath-rw模块处理Json对象操作示例
在Python中,如果你有一个列表,其中元素是包含`path`属性且`path`是一个列表的复杂对象,并且你想通过删除路径值重复的对象来去重,你可以这样做:
首先,你需要遍历列表并对每个对象的`path`属性进行排序,因为两个对象只要有相同的路径(不论顺序),它们会被视为相等。然后,可以利用`set`数据结构来自动去除重复的元素,因为集合只存储唯一的元素。
这是一个简单的示例步骤:
```python
def remove_duplicates(lst):
# 对每个对象的path进行排序
sorted_lst = [dict(sorted(item.items(), key=lambda x: x[0])) for item in lst]
# 使用集合来去重
unique_items = []
for item in sorted_lst:
if item['path'] not in [i['path'] for i in unique_items]:
unique_items.append(item)
return unique_items
# 示例输入
example_list = [
{"name": "obj1", "path": ["a", "b"]},
{"name": "obj2", "path": ["a", "b"]}, # 重复
{"name": "obj3", "path": ["c", "d"]},
{"name": "obj4", "path": ["a", "b"]} # 又一个重复
]
result = remove_duplicates(example_list)
print(result)
阅读全文