新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python對列表中的元素進(jìn)行去重操作
1.案例要求

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站建設(shè)、做網(wǎng)站與策劃設(shè)計,東寧網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:東寧等地區(qū)。東寧做網(wǎng)站價格咨詢:18982081108
""" 有列表:["a","a","a","b","b","c","d","d","f"], 要求去除重復(fù)的列表數(shù)據(jù),達(dá)到效果["a","b","c","d","f"] """
2.案例分析:
(1)集合可以去重,列表轉(zhuǎn)為集合,再轉(zhuǎn)回列表。隱患:集合無序,索引會變。
(2)第一步:引入一個臨時空列表,遍歷元素列表,如果元素不在臨時列表,就加到臨時列表,如果臨時列表已經(jīng)有該元素,則不做操作。最后打印新列表即為去重后的數(shù)據(jù)。
# 方法一:利用集合去重,不推薦,因為順序會亂 list1 = ["a","a","a","b","b","c","d","d","f"] list1 = list(set(list1)) # 先將list1轉(zhuǎn)化為set集合去重,再將集合轉(zhuǎn)化為列表 print(list1) # 方法二:定義臨時空列表,遍歷原始列表,保存不重復(fù)的元素,最后打印臨時列表。 list2 = ["a","a","a","b","b","c","d","d","f"] temp_list = [] # 定義一個臨時空列表,用于保存臨時數(shù)據(jù)。 for i in list2: # 遍歷原列表,判斷如果元素不在臨時列表,就追加進(jìn)去,如果在,就不加。 if i not in temp_list: temp_list.append(i) print(temp_list) # 方法三:雙重循環(huán),外層循環(huán)遍歷列表,內(nèi)存循環(huán)控制刪除重復(fù)元素的次數(shù)。如果元素個數(shù)統(tǒng)計大于1,則執(zhí)行刪除。 list3 = ["a","a","a","b","b","c","d","d","f"] list3.reverse() # 先反轉(zhuǎn)列表,從后往前刪 for i in list3: # 外層循環(huán)控制每次需要判定的元素 for _ in range(list3.count(i)): # 內(nèi)層循環(huán)控制每次執(zhí)行刪除元素的次數(shù),循環(huán)多次就徹底刪除。 if list3.count(i) > 1: list3.remove(i) # 如果該元素個數(shù)大于1,則執(zhí)行刪除操作 list3.reverse() # 最后再反轉(zhuǎn)列表,保證第一次出現(xiàn)的元素順位保留下來 print(list3)
3.運行結(jié)果:
?
4.知識點歸納:
(1)集合去重的功能。
(2)臨時列表的引入,可以解決很多實際的問題。
(3)如果有要求,要考慮變換過后,原列表內(nèi)存地址會不會發(fā)生改變,考慮會不會占用多余內(nèi)存空間。例如:方法一,順序亂了,而且內(nèi)存地址改變了。方法二,順序沒亂,但多申請了臨時變量的內(nèi)存地址。方法三,順序沒亂,內(nèi)存地址也沒變。
分享名稱:創(chuàng)新互聯(lián)Python教程:python對列表中的元素進(jìn)行去重操作
網(wǎng)頁URL:http://www.dlmjj.cn/article/dposjoj.html


咨詢
建站咨詢
