Python代码实现删除一个list里面的重复元素

 

方法一:是利用map的fromkeys来自动过滤重复值,map是基于hash的,大数组的时候应该会比排序快点吧

方法二:是用set(),set是定义集合的,无序,非重复

方法三:是排序后,倒着扫描,遇到已有的元素删之

 

============================================================

#!/usr/bin/python
#coding=utf-8
'''
Created on 2012-2-22
Q: 给定一个列表,去掉其重复的元素,并输出
'''
def distFunc1():
    a=[1,2,4,2,4,5,6,5,7,8,9,0]
    b={}
    b=b.fromkeys(a)
    print b
    #print b.keys()
    a=list(b.keys())
    print a
    
def distFunc2():
    a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]
    a=list(set(a)) # set是非重复的,无序集合。可以用list来的排队对set进行排序,list()转换为列表,a.sort来排序
    print a
    
def distFunc3():
    #可以先把list重新排序,然后从list的最后开始扫描,代码如下:
    List=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]
    if List:
        List.sort()
        #print List
        last = List[-1]
        #print last
        for i in range(len(List)-2, -1, -1):
            if last==List[i]: 
                del List[i]
            else: last=List[i]


    
if __name__ == '__main__':
    distFunc1()
    distFunc2()
    distFunc3()

 

 

posted @ 2016-08-01 20:27  随风9  阅读(1658)  评论(0编辑  收藏  举报