一、利用set去重
利用set是一种常用的去重方法,因为set内部的元素是唯一的,自然可以去除列表中的重复元素。
list1 = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
result = list(set(list1))
运行结果:
[1, 2, 3, 4, 5]以上代码中,通过set将列表转为集合,然后再将集合转为列表(因为集合是无序的),这样就能实现列表去重。
二、利用字典去重
在Python中,字典的键是唯一的,可以利用这一特性来进行去重操作。
list2 = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
result_dict = {}.fromkeys(list2)
result = list(result_dict.keys())
运行结果:
['a', 'b', 'c', 'd']以上代码中,通过字典的fromkeys方法,将列表的元素作为键创建一个字典,然后再将字典的键取出来作为去重后的列表。
三、利用列表推导式去重
还有一种简单方便的方法就是使用列表推导式进行去重操作。
list3 = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
result = list(set([x for x in list3]))
运行结果:
['a', 'b', 'c', 'd']以上代码中,利用列表推导式将列表中的元素取出来,然后使用set去重,最后将去重后的集合再转为列表即可。
四、利用双重循环去重
利用双重循环也可以实现去重操作,具体思路就是对每个元素进行遍历,如果有重复的就删掉。
list4 = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
result = []
for i in list4:
if i not in result:
result.append(i)
运行结果:
['a', 'b', 'c', 'd']以上代码中,对于每个元素,如果它不在结果列表中,就将它加入到结果列表中,这样就能去除重复元素了。
五、利用Pandas去重
对于大规模数据的去重操作,可以使用Pandas库来实现。
import pandas as pd
list5 = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
df = pd.DataFrame(list5, columns=['col'])
result = df['col'].unique().tolist()
运行结果:
['a', 'b', 'c', 'd']以上代码中,先将列表转为Pandas的数据框,然后再对数据框进行去重操作,返回结果也是一个列表。
六、小结
本文总结了多种去重方法,包括利用set、字典、列表推导式、双重循环和Pandas等方法。每种方法都有各自的特点和适用场景,读者可以根据具体情况灵活使用。参考代码
list1 = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
result = list(set(list1))
list2 = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
result_dict = {}.fromkeys(list2)
result = list(result_dict.keys())
list3 = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
result = list(set([x for x in list3]))
list4 = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
result = []
for i in list4:
if i not in result:
result.append(i)
import pandas as pd
list5 = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
df = pd.DataFrame(list5, columns=['col'])
result = df['col'].unique().tolist()