python 刪除佇列重複元素

2021-07-08 15:17:24 字數 700 閱讀 5764

如何刪除佇列重複元素呢?簡單地說,我們有兩種實現的方法:

1.借助set函式先將列表轉化為集合:

a=[1,3,1,2,4,2,5,6]

print(list(set(a)))

這種方法有兩個侷限:第一,轉化後的list不再保持原有的順序(因為set和dict一樣是無序的);第二,如果列表中存在可變元素(list,dict,etc),那麼也不能借助set來實現:

a=[1,3,1,2,[4,2],5,[4,2],6,[2,4]]

print(set(a))

報錯:

typeerror: unhashable type: 'list

2.利用生成器:

a=[1,3,1,2,[4,2],5,[4,2],6,[2,4]]

def del_repeat(lst):

m=for i in lst:

if i not in m:

yield i

print(list(del_repeat(a)))

執行結果:

[1, 3, 2, [4, 2], 5, 6, [2, 4]]

既保留了原有順序,又解決了unhashable型別!

鍊錶刪除重複元素1,刪除重複元素2,

刪除排序鍊錶中的重複元素 給定乙個排序鍊錶,刪除所有重複的元素,使得每個元素只出現一次。示例 1 輸入 1 1 2 輸出 1 2 示例 2 輸入 1 1 2 3 3 輸出 1 2 3 思路 很簡單。先將兩個指標進行操作,start,end然後判斷end是否等於空即可 definition for s...

STL vector刪除重複元素

stl提供了很多實用的演算法,這裡主要講解sort和unique演算法。刪除重複元素,首先將vector排序。sort vecsrc.begin vecsrc.end 然後使用unique演算法。vecsrc.erase unique vecsrc.begin vecsrc.end vecsrc.e...

STL vector刪除重複元素

stl提供了很多實用的演算法,這裡主要講解sort和unique演算法。刪除重複元素,首先將vector排序。sort vecsrc.begin vecsrc.end 然後使用unique演算法。vecsrc.erase unique vecsrc.begin vecsrc.end vecsrc.e...