python 之列表去重

方法一:list(set([xx,xx,xx])) # set是一個無需不重複元素集合{}

s=[1,2,3,3,6,0,9,4]
list(set(s))
[0, 1, 2, 3, 4, 6, 9]

s=[‘a’,‘c’,‘b’,‘b’,‘d’,‘a’,‘h’,‘e’]
list(set(s))
[‘d’, ‘c’, ‘b’, ‘a’, ‘e’, ‘h’]

對於數字的列表,去重後會自動排序;
對於字符的列表,驅蟲後不會自動排序,且順序和原來排序不一致;

方法二:keys() #去重後保留原有list排序

s=[‘a’,‘c’,‘b’,‘b’,‘d’,‘a’,‘h’,‘e’]
list({}.fromkeys(s).keys())
[‘a’, ‘c’, ‘b’, ‘d’, ‘h’, ‘e’]

s=[1,2,3,3,6,0,9,4]
list({}.fromkeys(s).keys())
[1, 2, 3, 6, 0, 9, 4]

方法三:for循環 # 去重後保留原有list排序

s=[‘a’,‘ak’,‘c’,‘ak’,‘ji’]
a=[]
for i in s:
… if i not in a:
… a.append(i)

print(a)
[‘a’, ‘ak’, ‘c’, ‘ji’]

方法四:索引 # 去重後保留原有list排序

s=[‘a’,‘c’,‘b’,‘b’,‘d’,‘a’,‘h’,‘e’]
f=list(set(s))
f.sort(key=s.index)
f
[‘a’, ‘c’, ‘b’, ‘d’, ‘h’, ‘e’]

s=[1,2,3,3,6,0,9,4]
f=list(set(s))
f.sort(key=s.index)
f
[1, 2, 3, 6, 0, 9, 4]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章