python中集合set可以去重,但是并不保留顺序。
利用python自带的库collections中的OrderedDict可以顺利实现去重并保留顺序。
样例:
import random
from collections import OrderedDict#产生10个随机数
lista=[random.randint(1,10) for i in range(10)]
print(lista)#利用OrderedDict关键字去重功能
orderD=OrderedDict.fromkeys(lista)
print(list(orderD))
结果
[6, 4, 8, 2, 8, 6, 3, 4, 8, 6]
[6, 4, 8, 2, 3]
完美实现去重并保留顺序
使用collections
模块中的这些数据类型可以帮助你更高效地处理数据,并提供更简洁、更易于理解的代码。每种数据类型都有其特定的用途和优势,可以根据具体需求选择使用。
#--------------------------------------------------------------------------------------------------------------------
另外,collections还有默认值字典可以使用。
defaultdict: 这是一个字典子类,它提供了一个工厂函数,用于为字典提供默认值。当访问字典中不存在的键时,它会调用工厂函数来提供默认值。
from collections import defaultdict
d=defaultdict(int) #参数可以是某种类,int默认值为0;可以是list/
d[1]=2
d[3]=8
print(d[0])
d[0]不存在,如果使用普通字典则会报错,使用默认值字典则不会报错。
#------------------------------------------------------------------------------------------------------------------------
deque: 这是一个双端队列,支持从两端添加和弹出元素。
from collections import deque
d = deque()
d.append('a')
d.appendleft('b')
print(d) # 输出: deque(['b', 'a'])
d.pop()
d.popleft()
print(d)