一日一技:從Python列表中刪除重複值

2021-01-11 python編程之美

從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()方法返回一個對象,該對象帶有一個指向列表中每個元素的計數器。

希望這篇文章對你們有用,

歡迎在下方討論留言,

謝謝關注.

相關焦點

  • python入門第三課:列表元素的訪問、增加、刪除與修改
    2、列表是有順序的,上面列表中『蘋果』是第一個,序號用0表示,'香蕉'的序號是1,'橘子'的序號是2,'葡萄'的序號是3,1990的序號是4,以此類推。3、列表中的元素沒有任何關係,元素可以重複出現。1)第一個是使用del 語句刪除元素,用法如:del fruits[2]。2)第二個是用pop()函數,如果直接使用fruits.pop(),這個操作會將列表最後一個元素刪除,並返回元素的值。如果用fruits.pop(2),則會刪除第3個元素,並返回元素的值。
  • python數據類型總結——列表
    python用列表或元組來幫助我們。python列表一系列元素組成一個集合,可能通過索引,對每個元素進行訪問。這種數據類型統稱為序列。在python中,字符串就是一種序列。如下:列表刪除+ 號的拼接和 * 號的重複,對於列表來說同樣適用。
  • Python數據類型之列表list
    # 列表是python中最基本的數據結構,它是一個有序序列,序列中的每個元素都分配一個數字(位置,索引)# 1、我們可以使用 方括號,中括號[]來創建列表# 2、我們可以直接將序列放在list(seq)
  • Python之list列表數據類型講解
    前言在python中,list列表數據類型其實就是一個容器,可以放置大量元素的集合。同時,list列表也有很多特點和使用場景,本文主要講解list列表的函數方法。概念list列表是一個集合,一個容器,同Java語言中的數組是一樣的,唯一的不同之處在於,Java中的數組類型只能放置同一種數據類型,而Python中的列表可以放置不同的數據類型。
  • 11個python列表方法全面解析!
    ls = [1,2,3,5,4,5,5,5,5,"python"]ls.count(5) #統計列表ls中 5 出現的次數5ls.count(0)#列表ls中無0元素ls.count("python")
  • Python數據類型串講(中)
    2、列表在對序列有了大體的認識後,現在開始介紹序列中最具代表性的數據類型——列表。python中列表以中括號'[ ]'為標識,將一個或多個元素(以逗號分隔)括起來為一個列表,其元素可以為python中任意一種數據類型包括列表本身,且各元素不需要具備相同的數據類型。
  • python字典操作大全,學習python第7天
    python字典跟列表類型,能存儲多個數據,並且還能在訪問元素的時候可以很快定位到需要的元素。而python字典操作方法有多少種呢?下面羽憶教程為您介紹。': 11},需要注意的是python字典中的值不允許重複。
  • Python列表和元組
    定義列表和函數```l = [1, 2, 'hello', 'world'] # 列表中同時含有 int 和 string 類型的元素l[1, 2, 'hello', 'world']tup= ('jason', 22) # 元組中同時含有 int 和 string 類型的元素tup('jason', 22)```對於列表來說,由於其是動態的,我們只需簡單地在列表末尾,加入對於元組來說,
  • 在Word中如何快速刪除重複內容?
    文檔中出現重複的日期或文本,該怎麼刪除重複值?本期Word妹與大家分享兩個不錯的方法。 第一種:查找替換法 選中文本,按Ctrl+H打開查找和替換界面,在查找中輸入代碼:( 代碼說明: ( ^13:回車符,也叫段落標記。
  • python字符串、列表內的方法使用
    python類型int:bit_lenth()bool:True Falsestr: str --->bool :bool(str): ''--->Falsestr例如:s = 'alexsb's1 = s[1]s2 = s[1:3]s3 = s[0:] s[
  • 帶你徹底掌握Python列表元素添加與刪除技能
    +運算操作符該方法並不是在原列表對象尾部添加元素,而是創建一個新的列表對象。其操作邏輯:將原列表的元素和新的列表元素依次複製到新的列表對象中。新列表的元素是原列表元素的多次重複。具體實例見圖:乘法擴展案例del 方法del方法用來刪除列表中指定位置的元素
  • Python基礎學習之常用六大數據類型
    賦值的步驟:a = 100第一步:準備好值100第二部:準備好變量名a第三部:將值與名字進行關聯一、整數python將其他一些靜態語言中的int、long,也就是整型和長整型合併為了一個。python中的int是邊長的,也就是說可以存儲無限大的整數,但是這是不現實的,因為沒有這麼多的內存夠分配。
  • 16.快速掌握Python列表類:Python列表類函數歸納總結
    一種更巧妙的辦法是,用上一篇學過的知識,在列表 l1 頭尾補上一個0。這樣,在新列表中,只看第2個元素到倒數第2個元素,所有元素的判斷邏輯是一致的。 l2 = [0] + l1 + [0]滿足條件的位置種上樹苗後,會影響後面的位置。比如下面的列表,位置3先滿足條件,位置4就不再滿足條件了。
  • 乾貨| 完美Python入門基礎知識點總結
    python的字串列表有2種取值順序從左到右索引默認0開始的,最大範圍是字符串長度少1從右到左索引默認-1開始的,最大範圍是字符串開頭List(列表) 是 Python 中使用最頻繁的數據類型列表可以完成大多數集合類的數據結構實現。
  • python入門第四課:列表的排序、元素遍歷
    Sort()方法會永久改變列表的排列順序,還有個函數sorted()只臨時改變列表順序,大家也可以測試一下。有時候需要從列表最後一個元素倒著列印,可以用reverse()方法,會永久改變列表的順序。如果需要知道列表有多少個元素,可以用len()方法。
  • 詳解Python列表及其運算
    訪問列表中的子表可以用「[:]」運算符,「[:]」運算符語法如下:list[start:end]list是列表的變量名稱,start是起始索引,end是終止索引,該運算符訪問包括start在內到end(不包括end)的範圍內的列表元素,返回值仍是一個列表。
  • 零基礎學程,給列表添加/刪除元素Python第八課
    1.2從列表中提取單個元素這就涉及到了列表中的一個新知識點:下標。列表中的各個元素,好比軍隊的方陣一樣,是有序排列的,每一個元素都有自己的位置標號,這個位置標號就叫做下標從上圖中看出,列表中的元素從左往右進行排列, 它們對應的下標從0,1,2開始逐漸遞增。
  • python:pop函數詳解 - 二進位01
    #簡介——pop()函數是python解釋器的內置方法,可作用於列表,字典。用法說明——在builtins.py中找到pop函數。列表:L.pop([index]) -> item -- remove and return item at index (default last).
  • 一日一技:用Python程序求解二次方程式
    用Python程序求解二次方程式 當我們已給出係數a,b和c時,用python 另外,說明一下,下面的示例,需要你有一定的python基礎,不然對於新手來說,會難以理解。 因此,這篇文章,適合於有一定python學習基礎的小夥伴。
  • python基礎課程 第5章 奇妙的內建函數
    我覺得談戀愛結婚也大概可以如此,大家如果能遵循 「不要重複你自己」 的原則,也就不會有那麼高的離婚率,天下也就沒有那麼多單親家庭了。然而人生遠遠比計算機世界複雜,我們可以用python在計算機中實現這個原則,卻很難在人生中實現它。有人說工程師相對比較單純也是如此吧,工作久了,難免受機器的一些影響。