欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)列表索引批量刪除的5種方法

 更新時(shí)間:2020年11月16日 11:07:56   作者:濤哥霸天下  
這篇文章主要介紹了Python實(shí)現(xiàn)列表索引批量刪除的5種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

最近用Java做項(xiàng)目,使用到List broadcastInfos的 broadcastInfos.remove()方法,出現(xiàn)項(xiàng)目的重大失誤,因?yàn)榈谝淮问褂肑ava語(yǔ)言,過(guò)于相信remove()方法,所以,不加思索的就使用了來(lái)刪除list對(duì)象中的指定元素。

背景:
目標(biāo)對(duì)象 listObj:[3, 4, 5, 6]
刪除指定索引列表 indexList: [1, 2]
返回結(jié)果: [3, 6]
常見(jiàn)錯(cuò)誤:

for listElement in listObj:
	for index in indexList:
		if listElement == listObj[index]:
			listObj.remove(listElement)

返回結(jié)果

在這里插入圖片描述

這種結(jié)果,既不會(huì)報(bào)錯(cuò),返回值也與目標(biāo)極為相似,返回2個(gè)值list對(duì)象,len(listObj)-2 = 2,也是[3,… 開(kāi)頭,如果不仔細(xì)看好像沒(méi)什么問(wèn)題。但是結(jié)果卻是錯(cuò)誤的。

listObj.remove() 改為listObj.pop(index)結(jié)果也是相同的。

在這里插入圖片描述

Java用同樣的編程思想,得到的結(jié)果也有相似性。
這種錯(cuò)誤,主要是初學(xué)者對(duì)于數(shù)據(jù)存儲(chǔ)原理沒(méi)有理解清楚,或者,沒(méi)有意識(shí)到內(nèi)存存儲(chǔ)長(zhǎng)度的動(dòng)態(tài)變化導(dǎo)致的, 下面介紹幾種Python刪除指定列表索引的方法

a = [3, 4, 5, 6]
b = [1,2]  # b 中為 a的索引

# 刪除a中下標(biāo)為b中的元素
# ====> [3, 6]

# 方法一
a = [a[i] for i in range(len(a)) if (i not in b)]
print(a)  # 重新生成滿足條件的list并賦值給 a 


# 方法二
[ a.remove(cElement) for cElement in [a[i] for i in b]]
print(a) # 強(qiáng)制使用 a.remove() 方法方式


# 方法三
a = {a[i] if i not in b else None for i in range(len(a))}
a.remove(None) # 將要?jiǎng)h除的對(duì)象設(shè)置為默認(rèn)值,
				#  前提是返回結(jié)果無(wú)序要求以及 純一種類(lèi)型
print(a)


# 方法四
m = {i:element for i, element in enumerate(a)}
[m.pop(i) for i in b]
print(list(m.values())) # 將每一個(gè)元素對(duì)象編碼,然后按指定的索引刪除,
						 # 并返回 values() 集合對(duì)象 --> list對(duì)象


# 方法五
class ListSub:

  def __init__(self, list1=None):
    if list1 is None:
      self.listA = []
    elif len(list1):
      self.listA = [x for x in list1]


  def __sub__(self, rhs):
    [self.listA.remove(cElement) for cElement in [self.listA[i] for i in rhs.listA]]
    return self.listA


a = ListSub(a)
b = ListSub(b)

print(a-b)  # 自己寫(xiě)個(gè)類(lèi),既然Python 不支持 “-” 這個(gè)符號(hào),
			 # 而喜歡存儲(chǔ)索引的同學(xué),自己寫(xiě)個(gè)工具類(lèi),實(shí)現(xiàn)減法,
			 # 返回自己想要的結(jié)果對(duì)象。

當(dāng)然,以上的方式都只是純粹將方法的實(shí)現(xiàn),沒(méi)有進(jìn)行算法優(yōu)化,以及相應(yīng)的異常捕獲和處理,而Python的效率是有名的…, 所有大牛們請(qǐng)不要過(guò)多介懷。

方法其實(shí)還有很多,但就項(xiàng)目中出現(xiàn)的Java語(yǔ)法這種錯(cuò)誤, 我就用Python 來(lái)反省一下自己,希望能幫到大家,謝謝。

最后,在學(xué)習(xí)其他語(yǔ)言的同時(shí),才知道,Python有他語(yǔ)言的便捷之處,也有其他語(yǔ)言共有的缺憾,沒(méi)有語(yǔ)言基礎(chǔ)的使用者,坑尤其多(比如List類(lèi)的使用),所以,還要廣學(xué)習(xí),多對(duì)比,寫(xiě)出集多種語(yǔ)言精華的代碼,然更多初學(xué)者將精力放在業(yè)務(wù)處理和程序的實(shí)現(xiàn)上。

到此這篇關(guān)于Python實(shí)現(xiàn)列表索引批量刪除的5種方法的文章就介紹到這了,更多相關(guān)Python 列表索引批量?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python連接Oracle的多種方式小結(jié)

    Python連接Oracle的多種方式小結(jié)

    Oracle數(shù)據(jù)庫(kù)是一種強(qiáng)大的企業(yè)級(jí)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),而Python是一門(mén)流行的編程語(yǔ)言,兩者的結(jié)合可以提供出色的數(shù)據(jù)管理和分析能力,本教程將詳細(xì)介紹如何在Python中連接Oracle數(shù)據(jù)庫(kù),需要的朋友可以參考下
    2024-08-08
  • python使用wxpy實(shí)現(xiàn)微信消息防撤回腳本

    python使用wxpy實(shí)現(xiàn)微信消息防撤回腳本

    這篇文章主要為大家詳細(xì)介紹了python使用wxpy實(shí)現(xiàn)微信消息防撤回腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Python使用requirements.txt和pip打包批量安裝的實(shí)現(xiàn)

    Python使用requirements.txt和pip打包批量安裝的實(shí)現(xiàn)

    本文主要介紹了Python使用requirements.txt和pip打包批量安裝的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • python實(shí)現(xiàn)的接收郵件功能示例【基于網(wǎng)易POP3服務(wù)器】

    python實(shí)現(xiàn)的接收郵件功能示例【基于網(wǎng)易POP3服務(wù)器】

    這篇文章主要介紹了python實(shí)現(xiàn)的接收郵件功能,結(jié)合實(shí)例形式分析了Python基于網(wǎng)易POP3服務(wù)器接收郵件相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • Python實(shí)現(xiàn)批量修改指定目錄下圖片的大小

    Python實(shí)現(xiàn)批量修改指定目錄下圖片的大小

    批量修改指定目錄下圖片大小通常是在需要對(duì)大量圖片進(jìn)行統(tǒng)一處理的情況下使用的,本文主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)批量修改圖片大小,需要的可以參考下
    2023-10-10
  • 使用python編寫(xiě)android截屏腳本雙擊運(yùn)行即可

    使用python編寫(xiě)android截屏腳本雙擊運(yùn)行即可

    使用python編寫(xiě)一個(gè)截屏的腳本,雙擊運(yùn)行腳本就OK,截屏成功后會(huì)將截屏文件已當(dāng)前時(shí)間命名,并保存在存放腳本的當(dāng)前路徑的screenshot文件夾下
    2014-07-07
  • python tkinter窗口最大化的實(shí)現(xiàn)

    python tkinter窗口最大化的實(shí)現(xiàn)

    這篇文章主要介紹了python tkinter窗口最大化的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python調(diào)用PC攝像頭實(shí)現(xiàn)掃描二維碼

    Python調(diào)用PC攝像頭實(shí)現(xiàn)掃描二維碼

    PC攝像機(jī)掃描二維碼的應(yīng)用場(chǎng)景很廣泛,可以應(yīng)用于各種需要快速掃描、識(shí)別和管理的場(chǎng)景,本文就來(lái)具體講講如何用Python實(shí)現(xiàn)這一功能吧
    2023-05-05
  • Python的反射函數(shù)與內(nèi)省工具深入解析

    Python的反射函數(shù)與內(nèi)省工具深入解析

    這篇文章主要為大家介紹了Python的反射函數(shù)與內(nèi)省工具深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Python中列表和元組的使用方法和區(qū)別詳解

    Python中列表和元組的使用方法和區(qū)別詳解

    這篇文章主要介紹了Python中列表和元組的使用方法和區(qū)別詳解的相關(guān)資料,需要的朋友可以參考下
    2016-07-07

最新評(píng)論