python list去重不打乱排序
##原理:集合本身并不支持索引操作 list() 可以将集合转换为列表,集合转换为列表是读取集合元素的必要步骤,集合转为列表之后,可以成功取值 ####python list去重不打乱排序 a=[1,6,3,1,58] a_ = list(set(a)) #a_中对染去重了,但是顺序以及改变 print(a) a_.sort(key=a.index) # 用a中的顺序对a_重新排序 print(a_) #为什么print(a_.sort(key=a.index)不行呢? ##输出: [1, 6, 3, 1, 58] [1, 6, 3, 58]
遇到的坑:
#遇到的坑: a = {67,0,24,58} a_ = list(a) print(a) a_.sort(key=a.index) print(a_) #报错:AttributeError: 'set' object has no attribute 'index' #错误原因:集合不能索引,只能变成列表后再一个一个读出,索引没有"index"