python 多表去重 Python列表去重

2021-10-19 20:27:21 字數 1290 閱讀 7363

無聊統計了下列表去重到底有多少種方法。

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.字典

大都是利用雜湊表特性

{}.fromkeys(alist).keys()

或者手動寫:

import random

if __name__=='__main__':

a=[random.randint(0,10) for i in xrange(10)]

d={}

for i in a:

d[i]=1

print d.keys()

3.排序後查重

import random

if __name__=='__main__':

a=[random.randint(0,10) for i in xrange(10)]

a.sort()

print [x for i,x in enumerate(a) if not i or x!=a[i-1]]

4.itertools.groupby

import random

import itertools

if __name__=='__main__':

a=[random.randint(0,10) for i in xrange(10)]

a.sort()

print [x[0] for x in itertools.groupby(a)]

5.遍歷

import random

if __name__=='__main__':

a=[random.randint(0,10) for i in xrange(10)]

b=for i in a:

if i not in b:

或者用reduce:

import random

import functools

if __name__=='__main__':

a=[random.randint(0,10) for i in xrange(10)]

functools.reduce(lambda x,y:x if y in x else x+[y],[,]+a)

還有其它方法沒?

python中df去重 python去重函式是什麼

資料去重可以使用duplicated 和drop duplicates 兩個方法。dataframe.duplicated subset none,keep first 返回boolean series表示重複行 引數 subset 列標籤或標籤序列,可選 僅考慮用於標識重複項的某些列,預設情況下使...

Python 序列去重

1 效率最高的方式,需要保證序列中的元素都是可雜湊的,即數值 字串 元組 frozenset等,而列表 字典 集合之類的就不行。def foo s try return list set s expect expection,e pass 2 效率中的方式,需要保證序列中的元素都是可排序的。def ...

python去重指令碼

可以用來去除字典 漏洞數量等 使用方法,將要去重的部分儲存成為csv格式,並命名為all.csv,直接執行後,會在當前目錄下生成qc.csv的檔案!coding utf 8 ciku open r all.csv r 開啟需要去重檔案 xieci open r qc.csv w 開啟處理後存放的檔案...