li = [2,5,4,7,2,1,3,2,6,7]
print('方法一列表追加'.center(40,'*'))
list1 =
for i in li:
if i not in list1:
print(list1)
print('推導式實現'.center(40,'*'))
list2 =
print(list2)
print('方法二利用字典鍵唯一'.center(40,'*'))
dict1 = {}
print(list(dict1.fromkeys(li).keys()))
print('方法三利用集合去重,這樣會改變列表順序,但是可以避免'.center(40,'*'))
result = list(set(li))
result.sort(key=li.index)#補救措施
print(result)
print('方法四itertools.groupby()只能對緊挨著的重複的元素去重!先排好序再用此方法才有意義')
import itertools
ids = [1,4,3,3,3,4,2,3,4,5,6,6,1]
ids.sort()
it = itertools.groupby(ids)
for k, g in it:
print(k,end=',')
print('方法五 reduce())
from functools import reduce
func = lambda x,y:x if y in x else x+[y]
li5 = reduce(func,[,]+li)
print(li5)
print('方法六 不變順序')
li.reverse()
for l in li:
if li.count(l) > 1:
li.pop(li.index(l))
li.reverse()
print(li)
python中列表去重
列表去重 定義乙個函式 def remove element m list 將列表 10,1,2,20,10,3,2,1,15,20,44,56,3,2,1 去除重複元素 def remove element m list 定義乙個空列表 new list 迴圈判斷某個元素是不是在新的列表中,如果在...
python 多表去重 Python列表去重
無聊統計了下列表去重到底有多少種方法。1.集合 list set alist 如果要保持順序 import random if name main a random.randint 0,10 for i in xrange 10 b list set a b.sort key a.index 2.字...
Python列表去重
標題有語病,其實是這樣的 假設有兩個列表 l1 1,2,3,4 l2 1,2,5,6 然後去掉l1中包含的l2的元素 直接這樣當然是不行的 def removeexists l1,l2 for e1 in l1 if e1 in l2 l1.remove e1 不管什麼語言都不能這麼幹,但是又有一點...