現(xiàn)在我們已經(jīng)知道列表是一種動(dòng)態(tài)的數(shù)據(jù)結(jié)構(gòu)恨诱。我們可以定義一個(gè)空的列表照宝,然后動(dòng)態(tài)的添加元素厕鹃。但是真正的動(dòng)態(tài)不光是能動(dòng)態(tài)添加數(shù)據(jù)乍丈,還要能在不需要元素的時(shí)候轻专,動(dòng)態(tài)的移除元素。
在 Python 中递览,你可以通過(guò)元素的位置或值移除它瞳腌。
通過(guò)位置移除元素
知道元素位置的前提下嫂侍,可以通過(guò)?del?語(yǔ)句刪除列表元素挑宠。代碼示例如下:
dogs = ['border collie', 'australian cattle dog', 'labrador retriever']
# Remove the first dog from the list.
del dogs[0]
print(dogs)
通過(guò)值移除元素
remove()?函數(shù)可以通過(guò)元素的值來(lái)移除元素各淀。給定元素值和要?jiǎng)h除的列表名,Python 會(huì)搜索給定列表临谱,直到找到第一個(gè)和給定值相同的元素悉默,然后移除元素抄课。代碼示例如下:
dogs = ['border collie', 'australian cattle dog', 'labrador retriever']
# Remove australian cattle dog from the list.
dogs.remove('australian cattle dog')
print(dogs)
注意:只有找到的第一個(gè)元素會(huì)被移除剖膳,當(dāng)有多個(gè)相同值的元素時(shí)吱晒,剩下的元素不會(huì)被移除沦童。
letters = ['a', 'b', 'c', 'a', 'b', 'c']
# Remove the letter a from the list.
letters.remove('a')
print(letters)
從列表中 popping 元素
在程序設(shè)計(jì)中有一個(gè)很有意思的概念:從集合中 'popping' 元素。每一種程序設(shè)計(jì)語(yǔ)言都有類似 Python 中列表的數(shù)據(jù)結(jié)構(gòu)驼壶。所有這些結(jié)構(gòu)都可以用作隊(duì)列热凹。處理隊(duì)列元素的方法也是多種多樣般妙。
其中一個(gè)簡(jiǎn)單的方法是碟渺,開始創(chuàng)建一個(gè)空列表苫拍,不斷的增添元素旺隙。當(dāng)需要取出元素時(shí)蔬捷,總是從最后一個(gè)元素開始抠刺,取出后再?gòu)牧斜碇幸瞥?b>pop()?函數(shù)就是來(lái)處理這種操作的速妖。示例如下:
dogs = ['border collie', 'australian cattle dog', 'labrador retriever']
last_dog = dogs.pop()
print(last_dog)
print(dogs)
這種操作也叫做先進(jìn)后出的操作罕容。最先進(jìn)入列表的元素總是最后一個(gè)取出的。
事實(shí)上露泊,你可以利用?pop()?函數(shù)處理任意的元素惭笑。只要給出想要?pop?出去的元素的索引沉噩。因此我們也可以作先進(jìn)先出的操作川蒙。示例如下:
dogs = ['border collie', 'australian cattle dog', 'labrador retriever']
first_dog = dogs.pop(0)
print(first_dog)
print(dogs)
手試一試
名人
生成一個(gè)包含四個(gè)名人名字的列表畜眨。
一次移除一個(gè)名人,使用上述列出的移除操作的函數(shù)贰健。
從列表中?pop?最后一個(gè)元素霎烙,然后?pop?除了最后一個(gè)元素的任意元素。
利用元素的位置移除元素甘苍;利用元素值移除元素载庭。
# Ex : Famous People
fpeople = ['david bowie', 'robert plant', 'obama', 'taylor swift']
#Remove each person from the list, one at a time, using each of the four methods we have just seen
fpeople.remove('taylor swift')
print(fpeople)
del fpeople[2]
print(fpeople)
bowie=fpeople.pop(0)
print(bowie,fpeople)
last=fpeople.pop()
print('there are no more famous people in the list')
print(fpeople)
# put your code here
#Pop the last item from the list
fpeople = ['david bowie', 'robert plant', 'obama', 'taylor swift']
fpeople.pop()
print(fpeople)
# and pop any item except the last item.
fpeople = ['david bowie', 'robert plant', 'obama', 'taylor swift']
for _ in range(0,len(fpeople)-1):
? ? fpeople.pop(0)
print(fpeople)
fpeople = ['david bowie', 'robert plant', 'obama', 'taylor swift']
fpeople.remove('obama')
del fpeople[2]
print(fpeople)