对对象属性的list进行去重
时间: 2023-08-30 14:11:13 浏览: 61
根据list中对象的属性去重和排序小结(必看篇)
5星 · 资源好评率100%
如果你要去重的是 Python 中的列表类型,可以使用 set() 函数将其转换为集合类型,然后再将其转换回列表类型。这样做的效果就是去掉列表中的重复元素。
以下是一个示例代码:
```python
my_list = ['apple', 'banana', 'banana', 'orange', 'apple']
unique_list = list(set(my_list))
print(unique_list)
```
输出结果为:
```
['banana', 'orange', 'apple']
```
如果你要去重的是一个对象列表,需要先定义一个比较函数来判断两个对象是否相等。比较函数的定义方式取决于你所使用的编程语言。
以下是一个 Python 的示例代码:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __eq__(self, other):
return self.name == other.name and self.age == other.age
def __hash__(self):
return hash((self.name, self.age))
person_list = [Person('John', 25), Person('Jane', 30), Person('John', 25)]
unique_person_list = list(set(person_list))
print([p.name for p in unique_person_list])
```
输出结果为:
```
['John', 'Jane']
```
在上面的代码中,我们定义了一个 Person 类,并重写了 __eq__() 和 __hash__() 方法。__eq__() 方法用于比较两个 Person 对象是否相等,__hash__() 方法用于为对象生成哈希值,这样我们就可以将 Person 对象放入集合中了。最后使用 set() 函数去重,再将其转换回列表类型。
阅读全文