python的list如何去重

disable發表於2021-09-11

python的list如何去重

要去除python列表中的重複元素,有很多方法

直觀方法

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

numbers = [1,7,3,2,5,6,2,3,4,1,5]
new_numbers = []
for x in numbers:
    if x not in new_numbers:
       new_numbers.append(x)
print(new_numbers)

此方法過程複雜,但是保證了列表的順序性。

使用set()的自動去重功能

numbers = [1,7,3,2,5,6,2,3,4,1,5]
new_numbers = list(set(numbers))
print(new_numbers)

此方法將列表轉化為集合再轉化為列表,利用集合的自動去重功能。簡單快速。缺點是:使用set方法無法保證去重後的順序。
但是,可以透過列表中索引(index)的方法保證去重後的順序不變。

numbers = [1,7,3,2,5,6,2,3,4,1,5]
new_numbers = list(set(numbers))
new_numbers.sort(key=numbers.index)
print(new_numbers)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/200/viewspace-2836718/,如需轉載,請註明出處,否則將追究法律責任。

相關文章