從Python列表中刪除重複項
列表是一個包含不同Python對象的容器,該對象可以是整數,字符串,布爾值等。它等同於其他程式語言中的數組。
因此,在這裡我們將通過不同的方式來從列表中刪除重複值。
在這節中,我們將學習:
使用Set()方法 從列表中刪除重複項使用臨時列表從列表中刪除重複項。使用Dict方法 從列表中刪除重複項使用for循環 從列表中刪除重複項使用列表推導式 從列表中刪除重複項使用Numpy unique()方法 從列表中刪除重複項。使用Pandas方法 從列表中刪除重複項使用enumerate()刪除重複值使用Set()方法從列表中刪除重複值
要從列表中刪除重複值,可以使用內置函數set()。 set()方法可以返回不同的元素.
以下,我們創建一個列表:[1,1,2,3,2,2,4,5,6,2,1]。 列表中有重複值,我們需要刪除重複值, 我們可以使用set()內置函數,然後使用list()函數顯示列表,
如下例所示:
my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))
輸出:
[1, 2, 3, 4, 5, 6]
我們可以看到,其中所有重複值都被刪除了。
使用臨時列表從列表中刪除重複項
要從列表中刪除重複值,可以使用一個空的臨時列表。 為此,我們必須遍歷具有重複值的列表,並將唯一項添加到臨時列表中。 之後,將臨時列表分配給主列表。
以下是一個使用臨時列表的例子:
my_list = [1, 2, 3, 1, 2, 4, 5, 4 ,6, 2]
print("List Before ", my_list)
temp_list = []
for i in my_list:
if i not in temp_list:
temp_list.append(i)
my_list = temp_list
print("List After removing duplicates ", my_list)
輸出:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
List After removing duplicates [1, 2, 3, 4, 5, 6]
使用Dict從列表中刪除重複項
通過從collections中導入OrderedDict,我們可以從給定列表中刪除重複項。 從python2.7開始可用。 OrderedDict負責按鍵顯示的順序返回不同的元素。
讓我們使用OrderedDict中的fromkeys()方法從列表中獲取唯一元素。
要使用OrderedDict.fromkey()方法,必須從collections中導入OrderedDict,如下所示:
from collections import OrderedDict
以下是一個使用OrderedDict.fromkeys()方法刪除重複項的示例。
from collections import OrderedDict
my_list = ['a','x','a','y','a','b','b','c']
my_final_list = OrderedDict.fromkeys(my_list)
print(list(my_final_list))
輸出:
['a', 'x', 'y', 'b', 'c']
從Python 3.5及更高版本開始,我們可以使用dict.fromkeys()方法從列表中獲取不同的元素。 dict.fromkeys()方法返回唯一的鍵.
示例如下:
my_list = ['a','x','a','y','a','b','b','c']
my_final_list = dict.fromkeys(my_list)
print(list(my_final_list))
輸出:
['a', 'x', 'y', 'b', 'c']
使用for循環從列表中刪除重複項
使用for循環,我們將遍歷列表來刪除重複值。
首先我們創建一個空列表myFinallist = []。在for循環中,添加檢查列表中的元素是否存在myFinallist中。如果不存在,則使用append()將元素添加到myFinallist中。
因此,每當遇到重複值時,它已經存在myFinallist中,並且不會被插入。
現在讓我們在下面的示例中進行檢查:
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinallist = []
for i in my_list:
if i not in myFinallist:
myFinallist.append(i)
print(list(myFinallist))
輸出:
[1, 2, 3, 4, 5, 6]
使用列表推導式從列表中刪除重複項
讓我們利用列表推導式從列表中刪除重複值,示例如下:
my_list = [1,2,2,3,1,4,5,1,2,6]
my_finallist = []
[my_finallist.append(n) for n in my_list if n not in my_finallist]
print(my_finallist)
輸出:
[1, 2, 3, 4, 5, 6]
使用Numpy中的 unique()方法從列表中刪除重複值
Numpy模塊中的unique()方法可以幫助我們從給定列表中刪除重複值。
要使用Numpy首先需要導入numpy模塊,執行以下步驟:
步驟1)導入Numpy模塊
import numpy as np
第2步)將列表與unique()方法一同使用,如下所示。 使用tolist()方法將輸出轉換回列表格式。
myFinalList = np.unique(my_list).tolist()
步驟3)最後列印出列表,如下所示:
print(myFinalList)
完整代碼如下:
import numpy as np
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = np.unique(my_list).tolist()
print(myFinalList)
輸出
[1, 2, 3, 4, 5, 6]
使用Pandas方法從列表中刪除重複值
Pandas模塊也有一個unique()方法,該方法將為我們提供給定列表中的唯一元素。
要使用Pandas模塊,需要執行以下步驟:
步驟1)導入模塊
import pandas as pd
第2步)將列表與unique()方法一起使用,如下所示:
myFinalList = pd.unique(my_list).tolist()
步驟3)列印輸出,如下所示:
print(myFinalList)
完整代碼如下:
import pandas as pd
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = pd.unique(my_list).tolist()
print(myFinalList)
輸出;
[1, 2, 3, 4, 5, 6]
使用enumerate()方法和列表推導式刪除重複值
示例代碼如下:
my_list = [1,2,2,3,1,4,5,1,2,6]
my_finallist = [i for j, i in enumerate(my_list) if i not in my_list[:j]]
print(list(my_finallist))
輸出:
[1, 2, 3, 4, 5, 6]
總結如下:
要從列表中刪除重複項,可以使用內置函數set()。 set()方法返回不同的元素。可以從collections中導入OrderedDict從給定列表中刪除重複值。 從python2.7開始可用。 OrderedDictdict按鍵值顯示的順序返回不同的元素。我們可以用for循環,我們將遍歷項目列表以刪除重複值。Numpy模塊中的unique()方法可以幫助我們從給定列表中刪除重複值。Pandas模塊也具有一個unique()方法,該方法可以返回列表中的唯一元素。列表推導式和enumerate()方法也可從列表中刪除重複元素。 enumerate()方法返回一個對象,該對象帶有一個指向列表中每個元素的計數器。
希望這篇文章對你們有用,
歡迎在下方討論留言,
謝謝關注.