python列表去掉重复的五种方法

集合法

a=[6,8,1,2,3,4,3,5,2,3]
b=list(set(a))
print(b)
#输出:[1, 2, 3, 4, 5, 6, 8]
#优点:简单高效,代码量少。
#缺点:会改变原始数据的顺序。

逐个转移法

a=[6,8,1,2,3,4,3,5,2,3]
b=[]
for i in a:
    if i not in b:
        b.append(i)
print(b)
#输出:[6, 8, 1, 2, 3, 4, 5]
#优点:不会改变原始数据的顺序。
#缺点:效率低。

列表推导法(类似逐个转移法)

a=[6,8,1,2,3,4,3,5,2,3]
b=[]
[b.append(i) for i in a if i not in b]
print(b)
#输出:[6, 8, 1, 2, 3, 4, 5]
#优点:不会改变原始数据的顺序。
#缺点:效率低。

字典法

a=[6,8,1,2,3,4,3,5,2,3]
zd={}
zd=zd.fromkeys(a).keys()
b=list(zd)
print(b)
#输出:[6, 8, 1, 2, 3, 4, 5]
#优点:不会改变原始数据的顺序。
#缺点:效率高。

删除法

a=[6,8,1,2,3,4,3,5,2,3]
b=[i for i in a if a.count(i)==1]
print(b)
#输出:[6, 8, 1, 4, 5]
#缺点:只保留一个的