在 Python 中從列表中刪除重複項

  1. 使用 Python 中的 set() 函式從列表中刪除重複元素
  2. 在 Python 中使用 OrderDict 來刪除重複的內容並維持列表的順序

Python 中的列表是一個資料結構,用於以特定的順序儲存資料。列表可以儲存多種型別的資料,即 int、float、字串、另一個列表等。列表是可突變的,這意味著一旦建立的值可以在以後改變。它用方括號 [] 表示。

myList = [2, 1, 2, 3, 0, 6, 7, 6, 4, 8]
print(myList)

輸出:

[2, 1, 2, 3, 0, 6, 7, 6, 4, 8]

你可以使用 for 迴圈從上述列表中刪除重複的元素,如下所示。

myList = [2, 1, 2, 3, 0, 6, 7, 6, 4, 8]

resultantList = []
 
for element in myList:
    if element not in resultantList:
        resultantList.append(element)

print(resultantList)

輸出:

[2, 1, 3, 0, 6, 7, 4, 8]

如果你不想寫這麼多程式碼,那麼在 Python 中,有兩種最流行的方法可以從 List 中刪除重複的元素。

  1. 如果你不想在刪除重複元素後還保持列表內元素的順序,那麼你可以使用 Set 資料結構。
  2. 如果你想在刪除重複元素後保持列表內元素的順序,那麼你可以使用名 OrderedDict

使用 Python 中的 set() 函式從列表中刪除重複元素

為了從列表中刪除重複的內容,我們可以使用另一種叫做 Set 的資料結構。集合是一種無序資料型別,只包含唯一的值。集合儲存值的順序與你可能在集合中插入元素的順序不同。集合使用大括號 {} 來表示。

所以,每當你列印儲存在集合裡面的元素,那麼輸出的順序就會不同。這就是為什麼不能對集合進行索引的原因,因為它是無序的。

mySet = {80, 10, 50, 18, 3, 50, 8, 18, 9, 8}
print(mySet)

輸出:

{3, 8, 9, 10, 80, 18, 50}

請注意,在我們列印出元素後,元素的順序是如何改變的。

在一個集合中,不允許有重複的元素,這意味著如果你多次擁有同一個元素,那麼集合將把它視為一個元素。這就是為什麼我們在 Python 中使用集合從一個列表中刪除重複元素的原因。

original_list = [80, 10, 50, 18, 3, 50, 8, 18, 9, 8]

print("Original List is: ",original_list)

convert_list_to_set = set(original_list)
print("Set is: ",convert_list_to_set)

new_list = list(convert_list_to_set)
print("Resultant List is: ",new_list)

original_list = list(convert_list_to_set)
print("Removed duplicates from original list: ",original_list)

輸出:

Original List is:  [80, 10, 50, 18, 3, 50, 8, 18, 9, 8]
Set is:  {3, 8, 9, 10, 80, 18, 50}
Resultant List is:  [3, 8, 9, 10, 80, 18, 50]
Removed duplicates from original list:  [3, 8, 9, 10, 80, 18, 50]

我們通過應用 set() 函式將一個列表轉換為一個集合。然後,我們通過應用 list() 函式將已經去掉重複的轉換後的集合轉換為一個 list。

在 Python 中使用 OrderDict 來刪除重複的內容並維持列表的順序

使用集合來刪除重複元素的問題是,它並不按特定順序儲存元素。因此,如果你不關心元素在結果列表中的儲存順序,即你在刪除重複元素後建立的列表,那麼在這種情況下,你可以使用 Set 資料結構。

但是如果你想在刪除重複的元素後保持列表中元素的順序,那麼你可以使用 Python 中的 OrderedDictOrderDict 保留了元素在列表中被插入的順序。要使用 OrderDict,你首先要從 Python 的集合模組中匯入它 from collections import OrderedDict

from collections import OrderedDict

myList = [2, 1, 2, 3, 0, 6, 7, 6, 8, 0, 4, 8]

final_list = list(OrderedDict.fromkeys(myList))

print(final_list)

輸出:

[2, 1, 3, 0, 6, 7, 8, 4]

相關文章 - Python List

  • 在 Python 中找到列表中元素的索引
  • 用 Python 將多個元素新增到列表中