導航:首頁 > 編程語言 > python列表數字去重

python列表數字去重

發布時間:2023-11-18 00:14:10

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中對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中列表如何去重

可以利用set去重

代碼如下:

#coding=utf-8

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

㈣ python刪除列表中的重復值

答: 主要總結了以下三種方法進行列表中的重復值刪除。具體代碼如圖所示。

其中最簡單的就是方法一和方法三了,因為他們只需要進行相關函數的調用。

  1. 在方法一中,藉助集合set中元素不能重復的特性,先將list轉為set,然後再將set轉回list,即可除重復元素;
  2. 在方法三中,藉助 Numpy中的 Unique()方法也可將重復的元素去除,同時注意其元素返回類型為ndarray,因此也需要將其轉為list。

同學們如果對方法二感興趣的話,也可以進行動手復現,它相比於方法一和三會更難一點,但是更有利於鍛煉代碼思維。

㈤ 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刪除重復數據

利用集合的不重復屬性,可以先轉換至集合,再用list()函數轉換回來即可。
比如,a是一個列表,a=list(set(a)),即可完成列表去重。

㈦ python如何列表去重取最大值

list=[('小王','第一次考試','5'),('小陳','第二次考試','7'),('小陳','第一次考試','1'),('小王','第六次考試','20')]

dic={}

list1=[]


forpersoninlist:

ifperson[0]notindic.keys():

dic[person[0]]=person

elifint(dic[person[0]][2])<int(person[2]):

dic[person[0]]=person

forvalueindic.values():

list1.append(value)

print(list1)

*.你看到的代碼應該是沒有縮進了,你可以右鍵>檢查,從相應的源碼中能看到相關的縮進

---------

稍等我給你寫下思路:

總體的思路就是動態的改變字典dic,字典中的鍵是tuple的第1個元素,即人名,相應的鍵值就是整個tuple,如dic={'小王':('小王','第一次考試','5')};而a.這個字典中的鍵值對是不斷增加的,b.鍵值是不斷改變的.這里的a,b兩點要怎麼理解呢?


先說a.這個字典中的鍵值對是不斷增加的?

比如說我一開始的字典是空的,然後我遍歷字典的時候,我會拿每次取到的列表中的元素(即元素)的第1個元素作為鍵,去dic中找,看看當前dic中是否有這個鍵,如果沒有,則我會在dic中新增一個鍵值對,這個鍵值對的鍵即tuple的第1個元素,相應的鍵值為整個tuple,舉例:

當前dic為{'小王':('小王','第一次考試','5')},假如我遍歷到list中的第2個元素,即('小陳','第二次考試','7'),我會取這個tuple的第1個元素,即'小陳',看看dic字典的鍵中是否有'小陳',結果一看dic中只有一個鍵'小王',沒有'小陳',則我會在dic中新增一個鍵值對,最後得到新的dic:{'小王':('小王','第一次考試','5'),'小陳':('小陳','第二次考試','7')}.

再一看b點:鍵值是不斷變化的:

接上面說,此時字典dic的值為{'小王':('小王','第一次考試','5'),'小陳':('小陳','第二次考試','7')},然後列表我遍歷到了第3個元素,即('小陳','第一次考試','1')。此時前面的處理邏輯還是一樣的,取tuple中的第1個元素去dic的鍵中找,看看是否存在,一找存在,字典dic中有'小陳'這個鍵了,則繼續第2步,用dic中'小陳'鍵值tuple中的第3個元素和當前從列表中取的第1個元素為'小陳'的tuple的第3個元素相比較,如果字典中的那個大,則字典中'小陳'的鍵值不變,如果從列表中拿到的這個tuple中第3個值大,則將字典中'小陳'的鍵值整個替換為從列表中取的這個當前tuple.

最終我們得到了一個鍵唯一,且相應鍵值為首個元素相同tuples中第3個值最大的這么一個字典。

因為你要求最終得到的類型是字典,所以接下來就是如果將這個字典dic轉化為你要的字典,dic.alues()得到的是dic中所有值的這么一個迭代器,然後使用for循環遍歷這個迭代器,把每次迭代器中取的值都追加到列表list1中。

最終列印的list1,符合題目要求

㈧ 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列表怎麼去掉相同的數

利用set()函數,可以將列表去重,如:
s = [1, 3, 3, 5, 7, 7, 8, 9]
set(s) #輸出為{1, 3, 5, 7, 8, 9}
list(set(s)) #輸出 [1, 3, 5, 7, 8, 9]

閱讀全文

與python列表數字去重相關的資料

熱點內容
php判斷終端 瀏覽:116
編譯網頁在線 瀏覽:920
國際版本伺服器是什麼意思 瀏覽:435
壓縮機十年包換 瀏覽:532
內核編譯之後安裝到哪 瀏覽:58
單片機加場效應管 瀏覽:152
怎麼關閉appstore 瀏覽:474
學編程入門語言 瀏覽:307
安卓機為什麼總是出現升級提示 瀏覽:133
b樹java實現 瀏覽:943
亞馬遜雲伺服器到期了怎麼續費 瀏覽:850
我的世界網易如何在伺服器裡面加光影 瀏覽:284
nat地址訪問外網伺服器 瀏覽:966
怎樣用java編譯一個心形 瀏覽:934
如何使用python中的pygame 瀏覽:836
python實用小工具 瀏覽:24
怎麼在安卓手機上去除馬賽克 瀏覽:235
農行濃情通app怎麼下載 瀏覽:533
怎麼把原文件夾找回來 瀏覽:535
俄羅斯方塊實現python思路 瀏覽:735