python下list去除重复的数据

673 阅读1分钟

使用set

l1 = ['b','c','d','b','c','a','a'] 
l2 = list(set(l1)) 
print (l2) # ['a', 'c', 'b', 'd']

# 或者
l2 = {}.fromkeys(l1).keys() 
print (l2) # ['a', 'c', 'b', 'd']

这两种都有个缺点,去除重复元素后排序变了:

list的sort()保持顺序

l1 = ['b','c','d','b','c','a','a'] 
l2 = list(set(l1)) 
l2.sort(key=l1.index) 
print (l2) # ['b','c','d','a']

# 或者
l1 = ['b','c','d','b','c','a','a'] 
l2 = sorted(set(l1),key=l1.index) 
print (l2) # ['b','c','d','a']

遍历

l1 = ['b','c','d','b','c','a','a'] 
l2 = [] 
for i in l1: 
if not i in l2: 
        l2.append(i) 
print (l2) # ['b','c','d','a']
# 或者
l1 = ['b','c','d','b','c','a','a'] 
l2 = [] 
[l2.append(i) for i in l1 if not i in l2] 
print (l2) # ['b','c','d','a']