Python列表去重的几种方法和实例
在 Python 中,列表去重有多种方法,下面分别介绍这些方法的实现。
set() 函数可以将列表转换成集合,集合中不允许有重复的元素,因此可以实现列表去重。
lst = [1, 2, 3, 3, 4, 4, 5]
lst = list(set(lst))
print(lst) # [1, 2, 3, 4, 5]
可以使用列表推导式,将列表中不重复的元素生成一个新的列表。
lst = [1, 2, 3, 3, 4, 4, 5]
lst = [i for i in lst if lst.count(i) == 1]
print(lst) # [1, 2, 5]
通过字典的键唯一性,将列表中的元素作为键,生成一个字典,然后再将字典的键转换成列表即可。
lst = [1, 2, 3, 3, 4, 4, 5]
d = {}
for i in lst:
d[i] = 1
lst = list(d.keys())
print(lst) # [1, 2, 3, 4, 5]
可以使用 Python 的 collections 模块中的 Counter 对象,统计列表中每个元素的出现次数,然后再将出现次数为 1 的元素生成一个新的列表。
from collections import Counter
lst = [1, 2, 3, 3, 4, 4, 5]
c = Counter(lst)
lst = [k for k, v in c.items() if v == 1]
print(lst) # [1, 2, 5]
可以使用 Pandas 库中的 drop_duplicates() 函数,将列表转换成 Pandas 的数据框,然后再使用该函数去重。
import pandas as pd
lst = [1, 2, 3, 3, 4, 4, 5]
df = pd.DataFrame(lst)
lst = list(df.drop_duplicates()[0])
print(lst) # [1, 2, 3, 4, 5]
可以使用 Numpy 库中的 unique() 函数,将列表转换成 Numpy 数组,然后再使用该函数去重。
import numpy as np
lst = [1, 2, 3, 3, 4, 4, 5]
lst = np.array(lst)
lst = list(np.unique(lst))
print(lst) # [1, 2, 3, 4, 5]
这些方法都可以实现列表去重,具体选择哪个方法,可以根据实际情况选择。