美文网首页Python的小技巧
Python 去除列表中重复的元素

Python 去除列表中重复的元素

作者: 大海龟啦啦啦 | 来源:发表于2020-07-08 21:29 被阅读0次

    这个有几种方法来完成,但是对于不可哈希的数据来说,BIF set()是无效的,会报错,下面介绍几种方法

    方法1

    In [72]: list1 = ['b' , 'c' , 'd' , 'b' , 'c' , 'a']
    
    In [73]: list2 = list(set(list1))
    
    In [74]: list2
    Out[74]: ['a', 'd', 'c', 'b']
    

    方法2

    In [75]: list1 = ['b' , 'c' , 'd' , 'b' , 'c' , 'a']
    
    In [76]: list2 = {}.fromkeys(list1).keys()
    
    In [77]: list2
    Out[77]: dict_keys(['b', 'c', 'd', 'a'])
    

    方法3

    In [78]: list1 = ['b' , 'c' , 'd' , 'b' , 'c' , 'a']
    
    In [79]: list2 = list(set(list1))
    
    In [80]: list2.sort(key = list1.index)
    
    In [81]: list2
    Out[81]: ['b', 'c', 'd', 'a']
    

    方法4

    In [82]: list1 = ['b' , 'c' , 'd' , 'b' , 'c' , 'a']
    
    In [83]: list2 = []
    
    In [84]: [list2.append(i) for i in list1 if not i in list2]
    Out[84]: [None, None, None, None]
    
    In [85]: list2
    Out[85]: ['b', 'c', 'd', 'a']
    

    对于以上4种方法,各有利弊,一般来说是方法2最快,方法1和方法3比较类似,但是方法3可以保持列表中的排序和之前的一样,但是开头也说了,这样无法对不可哈希的对象进行去重复,比如列表中的元素还是列表,这种情况下就只能用方法4了,但是方法4的缺点就是比较的慢。

    相关文章

      网友评论

        本文标题:Python 去除列表中重复的元素

        本文链接:https://www.haomeiwen.com/subject/elbhcktx.html