從列表中刪除元素
Python 有從數(shù)據(jù)結(jié)構(gòu)對(duì)象抓于,如列表和字典中去除數(shù)據(jù)項(xiàng)的函數(shù)。
寫在前面的話:
本人是一枚生物學(xué)的學(xué)生,由于對(duì)生物信息學(xué)特別感興趣,于是想自學(xué)生物信息學(xué)(新手莫怪)乳幸。了解到生物信息學(xué)要有編程基礎(chǔ)瞪讼,尤其是要會(huì)一門編程語言,例如:R語言粹断、Python符欠、Perl等,還要熟悉Linux系統(tǒng)姿染,作為生信小白背亥,聽說Python挺簡(jiǎn)單的秒际,于是就自學(xué)了Python悬赏,花了兩天時(shí)間了解了Python的基礎(chǔ)語法后,今天想做個(gè)練習(xí)題試試手(實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn))娄徊。
從列表中刪除元素
有幾種方法可以從列表中刪除數(shù)據(jù)項(xiàng)闽颇,如果想刪除列表中的最后一個(gè)元素,則可以使用列表的不傳遞參數(shù)的 pop()方法:
>>> data = [1 ,2 , 3 , 6 , 2 , 3 , 5 , 7]
> > > da ta . pop ( )
7
>>> data
[1, 2 , 3 , 6 , 2 , 3 , 5]
注意寄锐, pop()在刪除元素之前會(huì)返回該元素的值兵多。 如果要?jiǎng)h除列表數(shù)據(jù)中給定位置 i 處 的元素,則可以使用 pop ( ) 方法橄仆,將位置索引作為其參數(shù):
>>> data =[1,2 , 3 ,6 , 2 ,3 , 5 , 7]
>>> data.pop(0)
1
>>> data
[2, 3 , 6 , 2 , 3 , 5 , 7]
另外剩膘,也可以使用內(nèi)置函數(shù) del(data[i]) :
>>> da t a = [ 1 , 2 , 3 , 6 , 2 , 3 , 5 , 7]
>>> del (data[0] )
>>> data
[2 , 3 , 6 , 2 , 3 , 5 , 7]
但是,如果想刪除給定值的元素(如前面 data 列表中的數(shù)字 3) 盆顾,則必須使用列表的 remove()方法:
>>> data = [1怠褐,2 ,3 , 6 , 2 , 3 , 5 , 7]
>>> data . remove (3)
>>> data
[1, 2 , 6 , 2 , 3 , 5 , 7]
你可能已經(jīng)注意到了您宪,remove()方法只刪除第一次出現(xiàn)在列表中的 3 奈懒,如果想刪除所有為 3 的元素,則可以使用列表推導(dǎo)式(list comprehension) :
data = [1, 2 , 3, 6 , 2 , 3, 5 , 7]
data = [x for x in data if x != 3]
print(data)
在本例的第二行宪巨,列表 data 被重新定義為除了 3 以外磷杏,其他項(xiàng)與原始列表相同的列表。 注意捏卓,所有這些函數(shù)都會(huì)永久修改原始列表极祸。 如果想保留原來的列表,則可事先創(chuàng)建一 個(gè)副本怠晴,或?qū)⒘斜硗茖?dǎo)式生成的列表采用另一個(gè)變量名 贿肩。 另外還有一些小技巧,如使用列表的切片屬性除去列表中的一個(gè)或多個(gè)位置上的值:
data2 = data[:2] + data[3: ]
在此龄寞,data[2]元素將不會(huì)出現(xiàn)在 data2 列表中汰规。
日常結(jié)尾:
雖然這是個(gè)小小的計(jì)算程序,但對(duì)于初學(xué)者的我來說每一次對(duì)原代碼的升級(jí)改造物邑,哪怕是讀懂后的注釋都感覺是一次進(jìn)步提升溜哮,總之代碼雖小滔金,動(dòng)手最重要!希望更多學(xué)習(xí)Python的愛好者不要像我一樣眼高手低茂嗓,學(xué)習(xí)編程就是要餐茵,思考,敲碼述吸,思考忿族,敲碼,敲碼蝌矛,再敲碼道批!