我愛你,你是自由的。
使用列表對象的sort()方法對列表進行排序,從最後一個元素開始循環迭代列表,判斷相鄰的兩個元素是否相同。
def methodONE(list):
list.sort()
lenList = len(list)
lastItem = list[lenList-1]
for i in range(lenList-2,-1,-1):
if list[i] == lastItem:
list.remove(list[i])
else:
lastItem = list[i]
return list
定義一個臨時列表,循環迭代出的元素如果不在循環列表中,則加入,最後返回列表。
def methodTWO(list):
templist = []
for i in list:
if not i in temp list:
templist.addend(i)
return templist
list = [20,12,34,12,24,34,55,27]
print list(set(lists))
但是,set()會破壞排列順序,如果要保留排序,list(set(lists))可改為sorted(set(lists), key=lists.index)
在itertools有个强大的函数groupby可以很快捷的实现:
from itertools import *
a = [1, 4, 5, 4, 9, 1, 2, 3, 4, 5, 11]
a.sort()
b = [k for k, g in groupby(a)]
print b