Python 列表list去重

2021-06-21 09:56:38 字數 1338 閱讀 1856

一.{}.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

(ids

)fork,

ginit:

print

k

四,笨方法

ids=[

1,2,

3,3,

4,2,

3,4,

5,6,

1]news_ids=

forid

inids:if

idnot

innews_ids

:news_ids.(

id)print

news_ids

這四種都有個特點,去重後元素排序變了,效率 據說第一種比第二種快一點

五.索引再次排序 這種可以去重並且保持元素順序

#要結果是

[1, 4, 3, 2, 5, 6]

不要[1, 2, 3, 4, 5, 6]

ids=[1

,4,3

,3,4

,2,3

,4,5

,6,1

]news_ids

=list

(set

(ids

))news_ids

.sort

(key

=ids

.index

)print

news_ids

#[1, 4, 3, 2, 5, 6]

六:reduce

ids =[

1,4,

3,3,

4,2,

3,4,

5,6,

1]func

=lambdax,

y:x if

y in

x el*** +

[y]print

reduce

(func,[,

]+ids)

#[1, 4, 3, 2, 5, 6]

參考:

List列表去重方法

二.對列表元素為實體類的去重 三.對列表元素為實體類某屬性的去重 參考資料 概述 實現示例 測試 public void streamdeduplication1 去重前 a b f a z 去重後 a b f z public void streamdeduplication1 1 system....

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列表去重

標題有語病,其實是這樣的 假設有兩個列表 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 不管什麼語言都不能這麼幹,但是又有一點...