美文网首页python基础
Python列表去重技巧

Python列表去重技巧

作者: 码农小杨 | 来源:发表于2017-04-26 23:58 被阅读116次

    Python列表去重在Python应用编程中,是一种非常常见的应用技巧,本文将介绍三种常用的Python列表去重方法。

    方法一:通过字典进行去重
    格式:{}.formkeys(mylist).keys()
    实例:

    [1]: l1 = ['b','c','d','b','c','a','a']
    
    In [2]: l2 = {}.fromkeys(l1).keys()
    
    In [3]: l2
    Out[3]: dict_keys(['b', 'c', 'a', 'd'])
    
    In [4]: list(l2)
    Out[4]: ['b', 'c', 'a', 'd']
    

    方法二:通过集合进行去重
    格式:list(set(mylist))
    实例:

    In [11]: l1
    Out[11]: ['b', 'c', 'd', 'b', 'c', 'a', 'a']
    
    In [12]: print(list(set(l1)))
    ['b', 'c', 'a', 'd']
    

    由于采用集合,会导致原有的列表排序发生变化,此时可通过如下方法,保持列表原有顺序

    In [14]: l1
    Out[14]: ['b', 'c', 'd', 'b', 'c', 'a', 'a']
    
    In [15]: l2 = list(set(l1))
    
    In [16]: l2.sort(key=l1.index)
    
    In [17]: l2
    Out[17]: ['b', 'c', 'd', 'a']
    

    方法三:通过列表推导式去重

    In [18]: l1
    Out[18]: ['b', 'c', 'd', 'b', 'c', 'a', 'a']
    
    In [19]: l2 = [ ]
    
    In [20]: [l2.append(i) for i in l1 if not i in l2 ]
    Out[20]: [None, None, None, None]
    
    In [21]: l2
    Out[21]: ['b', 'c', 'd', 'a']
    

    相关文章

      网友评论

      本文标题:Python列表去重技巧

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