python实例:删除列表中重复的元素

 

本文原创,版权属作者个人所有,如需转载请联系作者本人。Q&微:155122733

--------------------------------------------------------------------------------------------------------

比较容易记忆的是用内置的set

#!/usr/bin/python
nums=['a','a',3,4,3]
if nums:
        print(list(set(nums)))# display [3, 4, 'a']

还有一种据说速度更快的,没测试过两者的速度差别
  
#!/usr/bin/python
nums=['a','a',3,4,3]
nums2 = {}.fromkeys(nums).keys()
print(nums2)#display dict_keys(['a', 3, 4])
这两种都有个缺点,去除重复元素后排序变了
 
如果想要保持他们原来的排序:
 
用list类的sort方法
#!/usr/bin/python
nums=['a','a',3,4,3]
nums3 = list(set(nums))
nums3.sort(key = nums.index)
print(nums3)# display ['a', 3, 4]
 
也可以这样写
#!/usr/bin/python
nums=['a','a',3,4,3]
nums4 = sorted(set(nums),key= nums.index)
print(nums4) # display ['a', 3, 4]
也可以用遍历
#!/usr/bin/python
nums=['a','a',3,4,3]
nums5=[]
for i in nums:
        if not i in nums5:
                nums5.append(i)
print(nums5)# display ['a', 3, 4]
上面的代码也可以这样
 
#!/usr/bin/python
nums=['a','a',3,4,3]
nums6=[]
[nums6.append(i) for i in nums if not i in nums6]
print(nums6)# display ['a', 3, 4]
这样就可以保证排序不变了
原文地址:https://www.cnblogs.com/lcl0421/p/8288708.html