Python列表去重在Python應(yīng)用編程中,是一種非常常見的應(yīng)用技巧,本文將介紹三種常用的Python列表去重方法。
方法一:通過字典進(jìn)行去重
格式:{}.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']
方法二:通過集合進(jìn)行去重
格式: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']
由于采用集合,會導(dǎo)致原有的列表排序發(fā)生變化,此時可通過如下方法,保持列表原有順序
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']
方法三:通過列表推導(dǎo)式去重
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']