日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python快速找到列表中所有重复的元素

發(fā)布時間:2024/7/5 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python快速找到列表中所有重复的元素 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Python快速找到列表中所有重復(fù)的元素:https://blog.csdn.net/sinat_29957455/article/details/103886088

index方法

為了能夠找到元素在列表中的位置,我們通常會使用list.index()方法來元素的下標(biāo),但是這種方法有一個弊端,就是當(dāng)列表中出現(xiàn)重復(fù)元素的時候,index方法只會返回第一個元素的位置,代碼如下

a = ["a","b","c","a","d","a"] print(a.index("a"))#輸出為0

通過上面的代碼可以發(fā)現(xiàn),index方法的返回值是一個整數(shù),不存在是-1,這樣我們就沒辦法獲取多個下標(biāo)的位置。當(dāng)然你可以通過

移除列表中的元素,然后再去尋找下一個元素的位置,當(dāng)返回-1時結(jié)束。或者,你還可以通過結(jié)合字典來做這些都是可以的,這里我要用一個更簡單的方法,就是利用numpy的where和argwhere方法。

where方法

numpy提供了一個where方法,返回的是一個元組,里面包含了一個數(shù)組,數(shù)組中包含了符合條件元素的下標(biāo)

import numpy as np#將列表轉(zhuǎn)換為numpy的數(shù)組 a = np.array(["a","b","c","a","d","a"]) #獲取元素的下標(biāo)位置 eq_letter = np.where(a == "a") print(eq_letter[0])#[0 3 5]

argwhere方法

import numpy as np#將列表轉(zhuǎn)換為numpy的數(shù)組 a = np.array([["a","b","c"],["a","d","a"]]) #獲取元素的下標(biāo)位置 eq_letter = np.where(a == "a") print(eq_letter)#(array([0, 1, 1]), array([0, 0, 2]))

對于多維數(shù)組來說,使用where函數(shù)返回的是一個元祖,對于二維數(shù)組來說元祖的一個數(shù)組表示的是行索引第二個數(shù)組表示的是列索引,而argwhere返回的是一個數(shù)組,如果將where返回的結(jié)果轉(zhuǎn)換為數(shù)組,則兩個數(shù)組正好互為轉(zhuǎn)置數(shù)組

import numpy as np#將列表轉(zhuǎn)換為numpy的數(shù)組 a = np.array([["a","b","c"],["a","d","a"]]) #獲取元素的下標(biāo)位置 eq_letter = np.argwhere(a == "a") print(eq_letter) """ [[0 0][1 0][1 2]] """

通過argwhere函數(shù)就可以精確獲取元素的下標(biāo)位置第一個參數(shù)代表行第二個參數(shù)代表列

總結(jié)

以上是生活随笔為你收集整理的Python快速找到列表中所有重复的元素的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。