Python列表去重

2022-01-13 17:08:27 字數 536 閱讀 9176

標題有語病,其實是這樣的:

假設有兩個列表 : l1 = [1,2,3,4] ; l2 = [1,2,5,6] 然後去掉l1中包含的l2的元素

直接這樣當然是不行的:

def removeexists(l1, l2):

for e1 in l1:

if e1 in l2:

l1.remove(e1)

不管什麼語言都不能這麼幹,但是又有一點不同,它不報錯而且還能往下走,只不過結果不合預期。

結果是這樣的,因為l1中的1移除後,迭代器索引指向了第二個元素,但是現在第二個元素是3了,所以l1的結果會是[2,3,4],如果l1原本是[1,2,4,5],結果就是[2,4],這個挺有意思。。。

解決方法倒是無所謂,順手貼一下:

def

removeexists(l1, l2):

l1t =l1[:]

for e1 in

l1t:

if e1 in

l2: l1.remove(e1)

python 多表去重 Python列表去重

無聊統計了下列表去重到底有多少種方法。1.集合 list set alist 如果要保持順序 import random if name main a random.randint 0,10 for i in xrange 10 b list set a b.sort key a.index 2.字...

Python 列表list去重

一.fromkeys list keys list2 fromkeys list1 keys 二.set list2 list set list1 三.itertools.grouby ids 1,4,3,3,4,2,3,4,5,6,1 ids.sort it itertools groupby i...

python中列表去重

li 2,5,4,7,2,1,3,2,6,7 print 方法一列表追加 center 40,list1 for i in li if i not in list1 print list1 print 推導式實現 center 40,list2 print list2 print 方法二利用字典鍵唯...