1. 程式人生 > >Python去除list中重複的元素

Python去除list中重複的元素

  • 可以使用內建的set方法
list1 = ['b','c','d','b','c','a','a']
list2 = list(set(list1))
print list2
  • 速度更快的一種方法
list1 = ['b','c','d','b','c','a','a']
list2 = {}.fromkeys(list1).keys()
print list2

但是通過這兩種方法獲得的list2排序變了,如果想維持原來list的排序可以通過以下方法:

  • 用list類的sort方法
l1 = ['b','c','d','b','c','a','a']
l2 = list(set(l1))
l2.sort
(key=l1.index) print l2
  • 也可以這樣寫
l1 = ['b','c','d','b','c','a','a']
l2 = sorted(set(l1),key=l1.index)
print l2
  • 也可以用遍歷(看起來比較蠢)
l1 = ['b','c','d','b','c','a','a']
l2 = []
for i in l1:
    if not i in l2:
        l2.append(i)
print l2
  • 上面的程式碼也可以這樣寫
l1 = ['b','c','d','b','c','a','a']
l2 = []
[l2.append(i) for
i in l1 if not i in l2] print l2