首先可以利用set()函數(shù)對列表進(jìn)行去重操作,然后利用len()函數(shù)比較去重前后對象的長度,若長度沒有變化,則原列表沒有重復(fù)元素
目前創(chuàng)新互聯(lián)建站已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、義馬網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
有兩個方法:
使用列表的count方法,因?yàn)閏ount方法可以做對象內(nèi)的元素進(jìn)行出現(xiàn)次數(shù)疊加計(jì)算
list1=[1,2,3,4,4,5,6,7]
list1.count(1)??#結(jié)果為1
list1.count(4)??#結(jié)果為2
for?i?in?list1:
if?list1.count(i)=2:
print('該元素%s重復(fù)'%i)
#結(jié)果:
該元素4重復(fù)
該元素4重復(fù)????#因?yàn)榈藘纱?所以有兩次輸出,功能是實(shí)現(xiàn)了,但是卻打印了兩次,有點(diǎn)不理想
2.借用工廠函數(shù)set()把對象轉(zhuǎn)為集合和列表的copy方法(淺復(fù)制),集合會默認(rèn)把重復(fù)元素去掉
list1=[1,2,3,4,4,5,6,7]
list2=list1.copy()??#為了不破壞原數(shù)據(jù),臨時(shí)淺復(fù)制給變量list2
list3=list(set(list2))??#使用set()函數(shù)將list2轉(zhuǎn)為集合去掉重復(fù)元素又用list()轉(zhuǎn)回列表?
for?i?in?list3:??#對無重復(fù)元素的列表list3迭代
if?i?in?list2:?
list1.remove(i)?#當(dāng)list3內(nèi)的元素存在于list2中,則把其元素從list2中刪除,最后就會留下重復(fù)元素
print('list1:%s中的重復(fù)元素有:%s'%(list1,list2))?#組后輸出原數(shù)據(jù)list1和最終結(jié)果list2
#結(jié)果:
list1:[1,?2,?3,?4,?4,?5,?6,?7]中的重復(fù)元素有:[4]????
#效果實(shí)現(xiàn)了,也沒問題,就是變量使用有點(diǎn)多??茨氵x擇了
人與人相處多一些真誠,少一些套路,不要把別人當(dāng)傻子,只是別人不想和你計(jì)較罷了。
上一篇: python3比較版本號方法封裝
下一篇: configobj讀寫.ini配置文件方法封裝
下面封裝的方法是用于檢查列表、元組、字符串中是否有重復(fù)元素,only_show_repeat方法返回一個只有重復(fù)元素的列表,show_repeat_count方法返回一個以重復(fù)元素為key,重復(fù)次數(shù)為value的字典,相當(dāng)于查重。內(nèi)有注釋自己看吧。
如果感覺本文對您有幫助可以點(diǎn)個贊哦
本文僅供交流學(xué)習(xí),請勿用于非法途徑
僅是個人意見,如有想法,歡迎留言
列表的作用是一次性存儲多個數(shù)據(jù),程序員可以對這些數(shù)據(jù)進(jìn)行的操作有:增、刪、改、查。
下面講解的是對列表的查找操作,可以分為兩種方法,一種是根據(jù)下標(biāo)來進(jìn)行查找,另外一種是根據(jù)查找函數(shù)來操作。
回憶一下知識點(diǎn),之前講過字符串的時(shí)候有說到下標(biāo),下標(biāo)是計(jì)算機(jī)內(nèi)存分配的從0開始的編號,目的是根據(jù)下標(biāo)可以找到針對性的數(shù)據(jù)。列表也可以根據(jù)下標(biāo)來找到數(shù)據(jù),后面學(xué)習(xí)的元組同樣也可以。
語法:
注意:如果以后都是用下標(biāo)來查找數(shù)據(jù),語法無非就是:序列名[下標(biāo)]
快速體驗(yàn):
打印結(jié)果如圖:
語法:
快速體驗(yàn):
執(zhí)行結(jié)果如圖:
注意:
語法:
快速體驗(yàn):
注意 :
-- 2. 如果書寫了開始和結(jié)束位置的下標(biāo),則在這個范圍內(nèi)查找,存在則返回開始位置的下標(biāo),如果查找的數(shù)據(jù)不存在則返回0;
語法:
注意: len()方法是一個公共的方法,無論是字符串、列表還是元組都可以使用
快速體驗(yàn):
以上就是列表的4種查找方法,每個方法有自己的語法和作用,這個知識點(diǎn)屬于 Python基礎(chǔ)教程 范疇,所以學(xué)起來還是比較輕松地,大家主要多多練習(xí)記住函數(shù)以及使用方法即可。
代碼如下:
def func1(num_list):
if len(num_list) != len(set(num_list)):
return True
else:
return False
if __name__ == '__main__':
num_list = [[1, 2, 3, 4], [6, 7, 8], [4, 5, 6, 6, 6]]
for one_list in num_list:
print(func1(one_list))
運(yùn)行結(jié)果:
擴(kuò)展資料
python對列表去重的幾種方式:
1、直觀方法,先建立一個新的空列表,通過遍歷原來的列表,再利用邏輯關(guān)系not in 來去重??偨Y(jié):這樣可以做出來,但是過程不夠簡單。但是此方法保證了列表的順序性。
2、利用set的自動去重功能,將列表轉(zhuǎn)化為集合再轉(zhuǎn)化為列表,利用集合的自動去重功能。簡單快速。缺點(diǎn)是:使用set方法無法保證去重后的順序。
參考資料:python官網(wǎng)-Doc語法文檔
利用set()函數(shù),可以將列表去重,如:
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]