在Python中,对数据去重取决于数据的类型,常见的有列表、集合等数据结构的去重操作,下面分别介绍:
列表去重
- 使用集合(Set):集合是一种无序且元素唯一的数据结构。将列表转换为集合,然后再转换回列表,即可实现去重。
my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(set(my_list))
print(unique_list)
注意,这种方法会打乱列表原本的顺序,因为集合是无序的。
- 使用字典(保持顺序,Python 3.7+):字典的键是唯一的,利用这一特性可以实现去重并保持顺序。
my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(dict.fromkeys(my_list))
print(unique_list)
- 循环遍历判断去重(保持顺序):通过遍历列表,将不重复的元素添加到新列表中。
my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = []
for num in my_list:
if num not in unique_list:
unique_list.append(num)
print(unique_list)
集合去重
集合本身就具有元素唯一性,所以如果数据已经是集合类型,无需额外操作就是去重状态。但如果你是想对两个集合进行合并并去重,可以使用集合的 union
方法。
set1 = {1, 2, 3}
set2 = {3, 4, 5}
new_set = set1.union(set2)
print(new_set)
字典去重(基于键的唯一性)
字典的键本身就是唯一的,如果你想根据字典的值去重,可以结合列表推导和字典操作。例如,假设有一个包含字典的列表,想根据字典某个键的值去重:
my_list_of_dicts = [
{'id': 1, 'name': 'Alice'},
{'id': 2, 'name': 'Bob'},
{'id': 1, 'name': 'Charlie'}
]
unique_dicts = {d['id']: d for d in my_list_of_dicts}.values()
print(list(unique_dicts))
这里通过将字典的 id
作为键,构建新的字典,从而达到去重目的,最后获取字典的值作为去重后的结果。