當前位置:首頁 » 編程語言 » python的list去重

python的list去重

發布時間: 2024-03-07 09:30:15

『壹』 python如何實現刪除某list中所有重復出現的元素

1. 使用內置函數set
lists = [1,1,2,3,4,6,6,2,2,9]
lists = list(set(lists))
先將列表轉換為集合,因為集合是不重復的,故直接刪除重復元素,而且輸出結果為排序後的

『貳』 python 列表多個元素如何配對去重呢

每次從列表中取出兩個元素,如果第二個元素不在輸出列表,就將這兩個元素添加到輸出列表。
source = ["a","1","b","1","c","2","d","3","e","4","c","3"]
out = []
for e in zip(source[0::2],source[1::2]):
....if e[1] not in out:
........out = out + list(e)
print(out)

『叄』 Python數字列表去重,如何簡單的既去重還能按原來的順序輸出

Python數字列表去重,還能按原來的順序輸出.

第一種方法

alist = [1, 2, 2, 4, 4, 6, 7]

b = []

for i in alist:

if i not in b:

b.append(i)

print(b)

源代碼(注意源代碼的縮進)

『肆』 Python如何對列表進行去重

1.使用set的特型,python的set和其他語言類似,是一個無序不重復元素集
orgList=[1,0,3,7,7,5]
#list()方法是把字元串str或元組轉成數組
formatList=list(set(orgList))
print(formatList)
結果:
[0,1,3,5,7]
2.使用keys()方法
orgList=[1,0,3,7,7,5]
#list()方法是把字元串str或元組轉成數組
formatList=list({}.fromkeys(orgList).keys())
print(formatList)
結果:
[0,1,3,5,7]
上面兩種方法的問題是:結果是沒有保持原來的順序。
3.循環遍歷法
orgList=[1,0,3,7,7,5]
formatList=[]
foridinorgList:
ifidnotinformatList:
formatList.append(id)
print(formatList)
結果:
[1,0,3,7,5]
這樣的代碼不夠簡潔
4.按照索引再次排序
orgList=[1,0,3,7,7,5]
formatList=list(set(orgList))
formatList.sort(key=orgList.index)
print(formatList)
結果:
[1,0,3,7,5]

『伍』 python中列表如何去重

可以利用set去重

代碼如下:

#coding=utf-8

li=[1,2,3,4,2,1,3,0]#列表
li2=set(li)
print(li2)

『陸』 python 數組去重的方法

如:arr =['a','d','e','a']
用: arr= sorted(set(arr), key=arr.index)
同: arr = list(set(arr))
arr.sort(key=arr.index)
⚠️直接set(arr)也可以去除重復元素,只是新數組的順序就不是原來的順序陵搏姿了。

如:arr=[{'text':wuyuan,'value':1},{'text':默認,'value':2},{'text':默認,'value':2},
{'text':wyy,'value':4}]
用銀悶: f = lambda x,y:x if y in x else x + [y]
arr = rece(f, [[], ] + arr)
⚠️這里去除的字典裡面的尺絕鍵值對必須是完全一樣的。

『柒』 python中對list去重的多種方法

python中對list去重的多種方法
今天遇到一個問題,在同事隨意的提示下,用了 itertools.groupby 這個函數。不過這個東西最終還是沒用上。
問題就是對一個list中的新聞id進行去重,去重之後要保證順序不變。
直觀方法
最簡單的思路就是:

這樣也可行,但是看起來不夠爽。

用set

另外一個解決方案就是用set:
代碼如下:

ids = [1,4,3,3,4,2,3,4,5,6,1]
ids = list(set(ids))

這樣的結果是沒有保持原來的順序。

按照索引再次排序

最後通過這種方式解決:
代碼如下:

ids = [1,4,3,3,4,2,3,4,5,6,1]
news_ids = list(set(ids))
news_ids.sort(ids.index)

使用itertools.grouby

文章一開始就提到itertools.grouby, 如果不考慮列表順序的話可用這個:
代碼如下:

ids = [1,4,3,3,4,2,3,4,5,6,1]
ids.sort()
it = itertools.groupby(ids)

for k, g in it:
print k

關於itertools.groupby的原理可以看這里:http://docs.python.org/2/library/itertools.html#itertools.groupby

網友補充:用rece

網友reatlk留言給了另外的解決方案。我補充並解釋到這里:
代碼如下:

In [5]: ids = [1,4,3,3,4,2,3,4,5,6,1]

In [6]: func = lambda x,y:x if y in x else x + [y]

In [7]: rece(func, [[], ] + ids)
Out[7]: [1, 4, 3, 2, 5, 6]

上面是我在ipython中運行的代碼,其中的 lambda x,y:x if y in x else x + [y] 等價於 lambda x,y: y in x and x or x+[y] 。

『捌』 python中如何刪除列表中重復的元素

舉個例子,比如有這樣一個列表l,可表示為[1,2,2,5,3,6],它可以通過下面的操作達到去重的目的:l=list(set(l)),在python shell中代碼執行如下圖所示:

python列表去重操作代碼運行結果

『玖』 python如何刪除list里重復的元素

這個可簡單可復雜。

簡單的:利用集合

a=list(set(a))#這樣就可以了,是不是很簡單

復雜的:

就是先對列表排序,然後比較相鄰元素是否相同,相同的則刪除後面的。大體演算法思路,代碼自己寫吧

當然還有其他的演算法...

-----------------------------------------------------------------------------------

額, 不好意思,看錯了

defQ(a):
aa=[]
foriina:
ifa.count(i)==1:
aa.append(i)
returnaa

這個就可以了,利用 list.count(obj) 計算obj在list中出現的次數進行判斷

熱點內容
androidstudio同步 發布:2024-11-29 04:37:50 瀏覽:114
python用什麼 發布:2024-11-29 04:37:40 瀏覽:792
w10系統如何搭建ftp伺服器 發布:2024-11-29 04:37:36 瀏覽:789
python模擬訪問網頁 發布:2024-11-29 04:33:21 瀏覽:227
除了安卓還有什麼可以下載的 發布:2024-11-29 04:05:44 瀏覽:381
coreldraw用戶臨時文件夾 發布:2024-11-29 04:05:44 瀏覽:740
如何設置ipad文件夾 發布:2024-11-29 03:59:16 瀏覽:141
如何給u盤文件夾加密 發布:2024-11-29 03:48:37 瀏覽:693
傳奇打元寶腳本 發布:2024-11-29 03:39:52 瀏覽:843
如何裝linux系統 發布:2024-11-29 03:38:17 瀏覽:183