導航:首頁 > 編程語言 > python中list去重復

python中list去重復

發布時間:2025-06-16 12:13:52

python刪除list重復元素

在Python中主要有5種方式 。
1、使用set函數
set是定義集合的,無序,非重復
numList = [1,1,2,3,4,5,4]
print(list(set(numList)))
#[1, 2, 3, 4, 5]
2、先把list重新排序,然後從list的最後開始掃描
a = [1, 2, 4, 2, 4, 5,]
a.sort()
last = a[-1]
for i in range(len(a) - 2, -1, -1):
if last == a[i]:
del a[i]
else:
last = a[i]
print(a) #[1, 2, 4, 5]
3、使用字典函數
a=[1,2,4,2,4,]
b={}
b=b.fromkeys(a)
c=list(b.keys())
print(c) #[1, 2, 4]
4、append方式
def delList(L):
L1 = []
for i in L:
if i not in L1:
L1.append(i)
return L1
print(delList([1, 2, 2, 3, 3, 4, 5])) #[1, 2, 3, 4, 5]
5、count + remove方式
def delList(L):
for i in L:
if L.count(i) != 1:
for x in range((L.count(i) - 1)):
L.remove(i)
return L
print(delList([1, 2, 2, 3, 3, 4]))#[1, 2, 3, 4]

② Python 怎麼除去list中的重復值以下是不正確的,結果是[1, 1, 2, 3, 4, 4, 5],為什麼

需要執行兩次une(a)才能去除
改了一下代碼,自己跑一下下面的兩端代碼就應該知道為什麼了,效果是一樣的
>>>a=[1,1,1,1,2,3,3,3,4,4,4,4,5,5]
>>>def une(lst):
for i in lst:
print 'i=',i
print 'count('+str(i)+')='+str(lst.count(i))
if lst.count(i) > 1:
lst.remove(i)
print 'a=',a
print '-----------------------------------------'
>>>une(a)
>>>a=[1,1,1,1,2,3,3,3,4,4,4,4,5,5]
>>>def une(lst):
num = len(lst)
n=0
for n in range(num):
#print 'n=',n
i = lst[n]
print 'i=',i
print 'count('+str(i)+')='+str(lst.count(i))
if lst.count(i) > 1:
lst.remove(i)
print 'a=',a
print '-----------------------------------------'
>>>une(a)

怎麼改une不用我教了吧

③ Python列表去重的六種方法

探索Python列表去重的六種高效策略</


方法一:利用set的獨特性質</


Python內置的set數據結構具有無序且不允許重復元素的特性,我們可以巧妙地利用這個特性來去重。通過將列表轉換為set,再轉換回list,即可實現去重,盡管set會打亂原有順序,但這是唯一可能丟失順序的方法</


方法二:藉助字典的鍵值對</


利用字典的fromkeys()函數,將列表中的元素作為鍵,可以自動去除重復,因為字典的鍵必須是唯一的。但同樣,這種方法同樣無法保持原有的元素順序</


方法三:常規遍歷操作</


通過遍歷列表,將每個元素檢查其在列表中是否首次出現,如果未出現則添加,這種方法保留了原始順序。代碼如下:


<pre>new_list = []
for item in old_list:
if item not in new_list:
new_list.append(item)</pre>

方法四:列表推導式</


列表推導式同樣可以簡潔地去重,同時保持元素順序:new_list = [x for i, x in enumerate(old_list) if x not in new_list[:i]]</


方法五與六:sort與sorted函數</


如果對順序要求不高,可以利用sort()或sorted()函數,它們會根據元素的默認排序規則去除重復,然後重新排序。但注意,這將改變列表的原始順序。


總結</


在Python中,根據實際需求和對順序的敏感程度,選擇合適的方法去除列表中的重復項至關重要。每種方法都有其適用場景,務必根據具體問題靈活運用。

④ python中列表如何去重

可以利用set去重

代碼如下:

#coding=utf-8

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

⑤ python list找出一個元素的位置(重復元素怎麼分別找出位置)

使用list的index方法可以找到list中第一次出現該元素的位置

>>>l=['a','b','c','c','d','c']
>>>find='b'
>>>l.index(find)
1

找出出現該元素的所有位置可以使用一個簡單的表理解來實現

>>>find='c'
>>>[ifori,vinenumerate(l)ifv==find]
[2,3,5]
閱讀全文

與python中list去重復相關的資料

熱點內容
linux判斷是否為文件 瀏覽:937
手機處理器編譯器 瀏覽:704
ug曲線點倒角編程 瀏覽:928
當演算法把人馴服 瀏覽:710
字母r編程 瀏覽:576
編譯openwrt添加型號 瀏覽:275
快眼看app哪裡下載 瀏覽:11
手機上門禁卡加密怎麼處理 瀏覽:857
2019年稅務師教材pdf 瀏覽:503
android支付寶源碼 瀏覽:942
建造師加密鎖怎麼辦 瀏覽:301
郵箱在線文檔怎麼設文件夾 瀏覽:876
區塊鏈編譯eth 瀏覽:783
安卓手機軟體如何給照片加發光點 瀏覽:979
結構性存款在app哪裡 瀏覽:970
iphone如何快速打開app 瀏覽:800
好玩的程序員笑話 瀏覽:82
linux下如何搭建web伺服器 瀏覽:222
狼群之飢和命令之眼 瀏覽:369
xp使用telnet命令 瀏覽:159