如何在给序列去重的同时保持它原有的顺序?
给一个序列去重的时候,可以利用set集合的特性,但是set是无序的,这得到的结果会打乱序列原有的存储顺序
list1 = [1,3,4,1,3,5,6,2,4,6,8]
list1 = set(list1)
print(list1)
运行图:
显然这样做得不到我们想要的结果,但是通一个生成器和set()集合的组合可以实现:
def deque(a):#生成一个生成器
set1 = set()
for x in a :
if x not in set1:
yield x
set1.add(x)
c = list(deque(list1))
print(c)
运行结果: