1. 程式人生 > >【python常見面試題】之python 中對list去重的多種方法

【python常見面試題】之python 中對list去重的多種方法

ont dex 如果 原來 簡單 div set方法 ron 職位

在python相關職位的面試過程中,會對列表list的去重進行考察。(註意有時會要求保證去重的順序性

1、直觀方法

1 li=[1,2,3,4,5,1,2,3]
2 new_li=[]
3 for i in li:
4     if i not in new_li:
5         new_li.append(i)
6 print(new_li)

先建立一個新的空列表,通過遍歷原來的列表,再利用邏輯關系not in 來去重。

總結:這樣可以做出來,但是過程不夠簡單。但是此方法保證了列表的順序性。

2、利用set的自動去重功能

1 li=[1,2,3,4,5,1,2,3]
2
li=list(set(li)) 3 print(li)

將列表轉化為集合再轉化為列表,利用集合的自動去重功能。簡單快速。缺點是:使用set方法無法保證去重後的順序。

但是,可以通過列表中索引(index)的方法保證去重後的順序不變。

1 li=[1,2,3,4,5,1,2,3]
2 new_li=list(set(li))
3 new_li.sort(key=li.index)
4 print(new_li)

以上兩種list去重方法就是常用的去重方法,需要註意的是面試時如果要求保證列表的順序時,註意set方法通過索引也能保證順序性。

【python常見面試題】之python 中對list去重的多種方法