在Python列表中删除重复元素的几种方法,用起来真好用
生活随笔
收集整理的這篇文章主要介紹了
在Python列表中删除重复元素的几种方法,用起来真好用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一: 直接遍歷列表刪除
l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2]for el in l1:if l1.count(el) > 1:l1.remove(el) print(l1)# 會漏刪,因為刪除一個元素后,后面的元素向前補位,導致緊跟的一個元素被跳過.二: 通過遍歷索引刪除
l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2] for el in range(len(l1)): # 此時len(l1)已經確定,不會隨著l1后面的變化而變化if l1.count(l1[el]) > 1:l1.remove(l1[el]) print(l1) # 會報錯,因為刪除元素后導致l1的長度變短了,但是for遍歷的還是之前的索引長度,會導致索引超過范圍而報錯三: 通過遍歷創建的切片來刪除原列表
''' 學習中遇到問題沒人解答?小編創建了一個Python學習交流QQ群:725638078 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2] for el in l1[:]:if l1.count(el) > 1:l1.remove(el) # 沒有問題,可以去重,但是無法保留原有的順序 print(l1)四: 用新列表記錄需要保留的元素
l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2] lst = [] for el in l1:if lst.count(el) < 1:lst.append(el) print(lst) # 沒有問題,也能保留原有順序,但是創建了新列表五: 通過索引倒著刪除
l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2] for el in range(len(l1)-1, -1, -1):if l1.count(l1[el]) > 1:l1.pop(el) # 沒有問題,且保留原順序# l1.remove(l1[el]) # 沒有問題,但是不能保留原有順序# del l1[el] # 這樣則會保留原有順序,小伙伴可以想一想為什么 print(l1)六: 通過遞歸函數刪除
''' 學習中遇到問題沒人解答?小編創建了一個Python學習交流QQ群:725638078 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2] def set_lst(lst):for el in lst:if lst.count(el) > 1:lst.remove(el)set_lst(lst) # 每次開辟一個新函數,判斷上次被刪除了一個元素后的列表else: # 直到最后,列表里的元素都是一個,運行了elsereturn lst print(set_lst(l1)) # 因為是從前面開始刪除的,所以不保留原有順序 ''' [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2] [1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2] [1, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2] [1, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2] [1, 3, 3, 3, 6, 6, 5, 5, 2, 2] [1, 3, 3, 6, 6, 5, 5, 2, 2] [1, 3, 6, 6, 5, 5, 2, 2] [1, 3, 6, 5, 5, 2, 2] [1, 3, 6, 5, 2, 2] [1, 3, 6, 5, 2] return lst = [1, 3, 6, 5, 2] '''七: 毫無疑問set()是最方便的
l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2] lst = list(set(l1)) print(lst)結尾給大家推薦一個非常好的學習教程,希望對你學習Python有幫助!
Python基礎入門教程推薦
Python爬蟲案例教程
總結
以上是生活随笔為你收集整理的在Python列表中删除重复元素的几种方法,用起来真好用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是线程?与进程又有什么区别,为什么要
- 下一篇: Python列表的用法和基本操作