序列類型-列表的操作

共有操作

列表同元組一樣诡蜓,是一個(gè)有序的序列,其中包括0或多個(gè)對(duì)象引用唉锌,支持表5-6中序列共用的運(yùn)算和函數(shù)隅肥。但是不同于元組和字符串的是竿奏,列表的長(zhǎng)度和內(nèi)容都是可變的,可自由對(duì)列表中數(shù)據(jù)項(xiàng)進(jìn)行增加腥放、刪除或替換泛啸。列表沒(méi)有長(zhǎng)度限制,元素類型可以不同秃症。因此候址,列表的應(yīng)用非常廣泛。
列表常用的創(chuàng)建方法有幾種:可以通過(guò)顯式的數(shù)據(jù)賦值生成种柑,元素之間用逗號(hào)分隔岗仑;可以使用 [ ] 生成空列表,然后利用相關(guān)方法(如append()聚请、extend()荠雕、insert()等)往列表中添加元素稳其;可以使用list()函數(shù)將元組或字符串轉(zhuǎn)換成列表。
由于列表是可變的炸卑,有關(guān)列表的操作除了表1中的共用的函數(shù)和運(yùn)算外既鞠,表3列出了列表類型的一些常用方法與函數(shù)。


列表的方法

Python為列表類型提供了一系列內(nèi)置操作盖文,包括append()嘱蛋、insert()pop()五续、remove()等函數(shù)洒敏,能夠很方便的處理上述列表元素變化的情況。

添加列表元素

Python提供了append()insert()等函數(shù)疙驾,實(shí)現(xiàn)向一個(gè)列表增加新元素的功能桐玻。

(1). 在列表尾部添加元素

在Python中,可以使用append()方法向一個(gè)列表的尾部追加一個(gè)元素荆萤,其基本語(yǔ)法如下:

source_list.append(obj)

其中镊靴,

  • source_list:為待修改的列表
  • obj:為待插入的元素
    例如,要向guests列表尾部增加客人Hu qi链韭,相應(yīng)的語(yǔ)句為:
# 初始化guests列表
guests=['Zhang san','Li si','Wang wu','Zhao liu']
# 向guests列表尾部追加一個(gè)名為Hu qi的客人
guests.append('Hu qi')
# 輸出新的guests列表
print(guests)

輸出結(jié)果為:
['Zhang san','Li si','Wang wu','Zhao liu','Hu qi']

(2). 在列表指定位置添加元素

Python也提供了insert()方法偏竟,可以在列表任意指定位置插入元素,其基本語(yǔ)法為:

source_list.insert(index,obj)

其中敞峭,

  • source_list:為待修改的列表
  • index:為待插入的位置索引
  • obj:為待插入的元素
    注意:在Python中踊谋,列表起始元素的位置索引為0
    例如,要向guests列表中Zhang san的后面增加客人Hu qi旋讹,則相應(yīng)的語(yǔ)句為:
# 創(chuàng)建并初始化guests列表
guests=['Zhang san','Li si','Wang wu','Zhao liu']
# 向guests列表Zhang san后面增加一個(gè)名為Hu qi的客人
guests.insert(1,'Hu qi')
# 輸出新的guests列表
print(guests)

輸出結(jié)果為:
['Zhang san','Hu qi','Li si','Wang wu','Zhao liu']

修改列表元素

Python中修改列表元素的方法為殖蚕,直接將列表中要修改的元素索引指出,然后為其指定新值沉迹。其基本語(yǔ)法如下:

source_list[index] = obj

其中睦疫,

  • source_list:為待修改的列表
  • index:為待修改元素的位置索引
  • obj:為待元素的新值
    例如,將請(qǐng)客名單guests列表中的Wang wu改為Wang shi鞭呕。
    蛤育,則相應(yīng)的語(yǔ)句為:
# 初始化guests列表
guests=['Zhang san','Li si','Wang wu','Zhao liu']
# 將列表中的`Wang wu`改為`Wang shi`
guests[2] = 'Wang shi'
# 輸出新的guests列表
print(guests)

輸出結(jié)果為:
['Zhang san','Li si','Wang shi','Zhao liu']

刪除列表元素

Python提供了多種不同的方法來(lái)實(shí)現(xiàn)對(duì)列表中元素的刪除操作,包括根據(jù)元素索引位置或者元素值刪除元素的方法葫松。

(1). 刪除指定位置的元素

del方法
在Python中瓦糕,調(diào)用del函數(shù)能夠刪除指定索引位置的元素,其基本語(yǔ)法如下:

del source_list[index]

其中腋么,

  • source_list:為待修改的列表
  • index:為待刪除元素的位置索引
    例如咕娄,將請(qǐng)客名單guests列表中的Zhang san刪除。
    珊擂,則相應(yīng)的語(yǔ)句為:
# 初始化guests列表
guests=['Zhang san','Li si','Wang wu','Zhao liu']
# 將列表中的`Zhang san`刪除
del guests[0]
# 輸出新的guests列表
print(guests)

輸出結(jié)果為:
['Li si','Wang wu','Zhao liu']

pop方法
Python還提供了pop()方法來(lái)刪除元素圣勒,該方法將從源列表刪除對(duì)應(yīng)元素徐块,同時(shí)返回被刪除的元素。其基本語(yǔ)法如下:

deleted_obj = source_list.pop(index)

其中灾而,

  • deleted_obj:為保存被刪除元素的變量胡控,可根據(jù)需要自由命名
  • source_list:為待修改的列表
  • index:為待刪除元素的位置索引
    注意:index參數(shù)為可選項(xiàng),不填則默認(rèn)刪除列表末尾的元素
    例如旁趟,將請(qǐng)客名單guests列表中的Zhang san刪除昼激。
    ,則相應(yīng)的語(yǔ)句為:
# 初始化guests列表
guests=['Zhang san','Li si','Wang wu','Zhao liu']
# 將列表中的`Zhang san`刪除
deleted_obj = guests.pop(0)
# 輸出被刪除的元素以及刪除后的guests列表
print(deleted_obj)
print(guests)

輸出結(jié)果為:
Zhang san
['Li si','Wang wu','Zhao liu']

(2). 刪除指定值對(duì)應(yīng)的元素

有些時(shí)候我們并不知道要?jiǎng)h除元素的位置索引锡搜,怎么辦呢橙困?別著急,Python還提供了remove()方法耕餐,可以直接通過(guò)元素值來(lái)刪除對(duì)應(yīng)的元素凡傅。其基本語(yǔ)法如下:

source_list.remove(obj)

其中,

  • source_list為待修改的列表
  • obj為待刪除元素的值
    注意:如果列表中有多個(gè)值為obj的元素肠缔,remove僅刪除位置索引最靠前的那個(gè)元素
    例如夏跷,將請(qǐng)客名單guests列表中的Zhang san刪除。
    明未,則相應(yīng)的語(yǔ)句為:
# 初始化guests列表槽华,列表中有多個(gè)名為Zhang san的客人
guests=['Zhang san','Li si','Wang wu','Zhao liu','Zhang san']
# 將列表中的`Zhang san`刪除
guests.remove('Zhang san')
# 輸出新的guests列表
print(guests)

輸出結(jié)果為:
['Li si','Wang wu','Zhao liu','Zhang san']


列表元素排序

Python針對(duì)列表數(shù)據(jù)結(jié)構(gòu)內(nèi)置提供了sort()方法,實(shí)現(xiàn)對(duì)列表元素的排序功能趟妥。其基本語(yǔ)法如下:

source_list.sort(reverse=True)

其中猫态,

  • source_list:待排序的列表
  • sort:列表排序函數(shù)的語(yǔ)法關(guān)鍵詞
  • reverse:sort函數(shù)的可選參數(shù),如果設(shè)置其值為True披摄,則進(jìn)行反向從大到小排序亲雪,如果設(shè)置為False或者不填寫(xiě)該參數(shù),則默認(rèn)進(jìn)行正向從小到大排序疚膊。

例如义辕,給定一個(gè)客人列表guests, 我們對(duì)其按照字母排序如下:

guests = ['zhang san','li si','wang wu','sun qi','qian ba']
guests.sort()
print(guests)
guests.sort(reverse=True)
print(guests)

程序輸出結(jié)果:
['li si','qian ba','sun qi','wang wu','zhang san']
['zhang san','wang wu','sun qi','qian ba','li si']

注意,sort函數(shù)會(huì)直接作用于待排序的列表并修改其排序

數(shù)字列表的創(chuàng)建酿联、對(duì)數(shù)字列表進(jìn)行簡(jiǎn)單的統(tǒng)計(jì)運(yùn)算

可以利用 range()终息、list()sum()等函數(shù)方法實(shí)現(xiàn)我們的目標(biāo)贞让。

range()函數(shù)

Python提供了range()函數(shù),能夠用來(lái)生成一系列連續(xù)增加的數(shù)字,其基本使用語(yǔ)法有如下三種:

range(lower_limit,upper_limit,step)

其中柳譬,

  • lower_limit:生成系列整數(shù)的下限整數(shù)喳张,不填該參數(shù)則默認(rèn)為從0開(kāi)始。生成的整數(shù)從此數(shù)開(kāi)始美澳,包括該數(shù)销部。

  • upper_limit:生成系列整數(shù)的上限整數(shù)摸航,必填參數(shù)。生成的整數(shù)要小于該上限舅桩。

  • step:在下限和上限之間生成系列整數(shù)之間的間隔步長(zhǎng)酱虎,不填該參數(shù)則默認(rèn)步長(zhǎng)為1

  • 注意,range()函數(shù)的三個(gè)參數(shù)都只能為整數(shù)擂涛。如果range函數(shù)中僅一個(gè)參數(shù)读串,則該參數(shù)表示upper_limit;如果僅兩個(gè)參數(shù),則分別表示lower_limitupper_limit撒妈。
    例如恢暖,要生成1~6之間步長(zhǎng)為2的系列整數(shù):

for i in range(1,6,2):
    print(i)

輸出結(jié)果:

1
3
5

基于range()函數(shù)創(chuàng)建數(shù)字列表

我們可以通過(guò)range()函數(shù),利用Python列表提供的append()插入功能創(chuàng)建一個(gè)列表狰右。
例如杰捂,我們要?jiǎng)?chuàng)建一個(gè)包含0~9 10個(gè)整數(shù)的平方的列表:

# 聲明一個(gè)列表變量
numbers = []
# 利用append()函數(shù)和range()函數(shù)向列表插入目標(biāo)元素
for i in range(10):
    number = I**2
    numbers.append(number)
print(numbers)

輸出結(jié)果:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

使用list()函數(shù)和range()函數(shù)創(chuàng)建數(shù)字列表

我們可以利用list()函數(shù)將range()生成的系列數(shù)字直接轉(zhuǎn)為列表,這時(shí)候range()函數(shù)的返回值將會(huì)作為list()函數(shù)的參數(shù)棋蚌,輸出為一個(gè)數(shù)字列表嫁佳。其基本使用語(yǔ)法如下:

data_list = list(range(lower_limit,upper_limit,step))

其中,

  • list:列表函數(shù)的語(yǔ)法關(guān)鍵詞
  • range:函數(shù)語(yǔ)法關(guān)鍵詞
  • data_list:最終生成的列表變量

例如谷暮,我們要生成并輸出1~5的數(shù)字列表:

data_list = list(range(1,6))
print(data_list)

輸出結(jié)果:
[1,2,3,4,5]

對(duì)數(shù)字列表進(jìn)行簡(jiǎn)單的統(tǒng)計(jì)運(yùn)算

Python中有一些專門處理數(shù)字列表簡(jiǎn)單的統(tǒng)計(jì)運(yùn)算的函數(shù)脱拼,利用這些函數(shù)可以輕松找到數(shù)字列表的最小值、最大值和總和等一系列統(tǒng)計(jì)運(yùn)算坷备。其基本語(yǔ)法如下:

min_value = min(data_list)
max_value = max(data_list)
sum_value = sum(data_list)

其中熄浓,

  • min:數(shù)字列表求最小值的語(yǔ)法關(guān)鍵字
  • max:數(shù)字列表求最大值的語(yǔ)法關(guān)鍵字
  • sum:數(shù)字列表求和的語(yǔ)法關(guān)鍵字
    具體使用示例如下:
numbers = [2,4,11,1,21,32,5,8]
print('The min number is',min(numbers))
print('The max number is',max(numbers))
print('The sum is',sum(numbers))

輸出結(jié)果:

The min number is 1
The max number is 32
The sum is 84

列表切片

Python切片是對(duì)一個(gè)列表取其部分元素獲得一個(gè)子序列的常見(jiàn)操作,切片操作的返回結(jié)果類型與被切片的對(duì)象一致省撑。要?jiǎng)?chuàng)建一個(gè)已有列表的切片赌蔑,通過(guò)指定切片的第一個(gè)列表元素和最后一個(gè)列表元素的索引號(hào)即可。其基本語(yǔ)法如下:

list_slice = source_list[start:end:step]

其中竟秫,

  • source_list:被切片的源列表

  • list_slice:切片后生成的子序列列表

  • start:切片起始索引位置娃惯,省略則從頭開(kāi)始

  • end:切片結(jié)束索引位置,省略則切至列表末尾

  • step:切片步長(zhǎng)肥败,可選參數(shù)趾浅,表示每N個(gè)元素取一個(gè),默認(rèn)為1

  • 注意:切片和range()函數(shù)一樣馒稍,Python會(huì)自動(dòng)到達(dá)所指定切片結(jié)束索引位置的前面一個(gè)元素停止皿哨。
    例如,下面是我已經(jīng)點(diǎn)好的菜名列表纽谒,現(xiàn)在朋友點(diǎn)的菜單中包含我的前三個(gè)菜名证膨,輸出朋友的菜單:

my_menu = ['fish','pork','pizza','carrot']
print(my_menu[1:4:2])
print(my_menu[:3])
print(my_menu[2:])

輸出結(jié)果:
['pork','carrot']
['fish','pork','pizza']
['pizza','carrot']
負(fù)數(shù)索引返回離列表末尾相應(yīng)間隔的元素。列表末尾元素的索引是從-1開(kāi)始的鼓黔。
例如央勒,朋友的菜單是包含我的菜單最后3個(gè)菜名:

my_menu=['fish','pork','pizza','carrot']
print(my_menu[-3:])

輸出結(jié)果:
['pork','pizza','carrot']

*注:list[::-1]可對(duì)列表進(jìn)行反轉(zhuǎn)

任務(wù)1 建立列表

輸入一個(gè)表示姓名的字符串不见,建立一個(gè)只含有此字符串的列表lt1,并輸出lt1的值崔步,例如稳吮,輸入字符串為“李海”井濒,則輸出[“李涸钏疲”]

任務(wù)2 加入元素

輸入3個(gè)整數(shù),分別代表數(shù)學(xué),語(yǔ)文眼虱,英語(yǔ)的分?jǐn)?shù)喻奥,生成列表lt2,將列表lt2加到lt1后面捏悬,輸出更新后的lt1撞蚕。例如,輸入的整數(shù)為:90 79 100过牙,表示對(duì)應(yīng)課程的分?jǐn)?shù)甥厦,則輸出:[“李海”,90,79,100]

  • 提示:可以使用append(),extend(),insert()“+”運(yùn)算寇钉,但是要注意他們的差別

任務(wù)3 插入元素

從鍵盤輸入一個(gè)數(shù)字字符串刀疙,并在列表lt1的起始位置插入這個(gè)數(shù)字字符串,代表學(xué)號(hào)扫倡,輸出lt1的值谦秧。例如:輸入:“201705090345”,輸出lt1的值為:[“201705090345”,“李耗炖#”,90,79,100]

  • 提示:可以使用insert()在首元素前面進(jìn)行插入疚鲤。

任務(wù)4 列表的刪除

找出列表lt2中的最小的元素,在列表lt1中刪去此元素缘挑,刪除后集歇,再輸出lt1的值

  • 提示:使用內(nèi)置min()函數(shù)求出lt1中元素的最小值,用列表的方法remove()pop()來(lái)移除此元素语淘。也可以用內(nèi)置函數(shù)del()來(lái)刪除指定位置的元素诲宇。注意參數(shù)remove()的參數(shù)是要?jiǎng)h除的具體元素,而del()
    pop()的圓括號(hào)中要填寫(xiě)整數(shù)惶翻,表示要?jiǎng)h除的元素的索引號(hào)姑蓝。

任務(wù)5 列表的反轉(zhuǎn)與排序

將lt2列表中的元素按從小大到大順序排列輸出,再將lt1復(fù)制給lt3维贺,將lt3反轉(zhuǎn)輸出它掂。例如:lt2的值是[90,79,100]溯泣,則從小到大輸出為[79虐秋,90,100]垃沦,lt3反轉(zhuǎn)的結(jié)果為[100,90客给,“李海”,“201705090345”]

  • 提示:本任務(wù)使用列表的方法有:copy()肢簿,sort()reverse()

測(cè)試說(shuō)明
注意:輸入數(shù)據(jù)時(shí)靶剑,一行只輸入一個(gè)數(shù)。本關(guān)1-5個(gè)任務(wù)評(píng)測(cè)輸入輸出樣例如下:
輸入測(cè)試數(shù)據(jù):

李海
90
79
100
201705090345
輸出測(cè)試結(jié)果:

[“李撼爻洌”]
[“李鹤”,90,79,100]
[“201705090345”,“李海”,90,79,100]
[“201705090345”,“李菏湛洌”,90,100]
[79坑匠,90,100]
[100,90,“李何韵В”,“201705090345”]

#列表基本操作

#任務(wù)1代碼
s1=input()
#Begin 
lt1=[s1]
#End
print(lt1)

#任務(wù)2 在begin和end間空白處填寫(xiě)代碼
a=int(input())
b=int(input())
c=int(input())
#begin
lt2 = [a,b,c]
lt1 = lt1+lt2
#end
print(lt1)

#任務(wù)3 在begin和end間空白處填寫(xiě)代碼
id=input()
#begin
lt1.insert(0,id)
#end
print(lt1)

#任務(wù)4 在begin和end間空白處填寫(xiě)代碼
#begin
lt1.remove(min(lt2))
print(lt1)
#end

#任務(wù)5 在begin和end間空白處填寫(xiě)代碼
#begin
lt2.sort()
print(lt2)
lt3=lt1.copy()
print(lt3[::-1])
#end

積極的人像太陽(yáng)照到哪里哪里亮厘灼,消極的人像月亮初一十五不一樣.

running.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市咽瓷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖北苟,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件薛匪,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡钻洒,警方通過(guò)查閱死者的電腦和手機(jī)奋姿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)航唆,“玉大人胀蛮,你說(shuō)我怎么就攤上這事∨锤疲” “怎么了粪狼?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)任岸。 經(jīng)常有香客問(wèn)我再榄,道長(zhǎng),這世上最難降的妖魔是什么享潜? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任困鸥,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘疾就。我一直安慰自己澜术,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布猬腰。 她就那樣靜靜地躺著鸟废,像睡著了一般。 火紅的嫁衣襯著肌膚如雪姑荷。 梳的紋絲不亂的頭發(fā)上盒延,一...
    開(kāi)封第一講書(shū)人閱讀 52,793評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音鼠冕,去河邊找鬼添寺。 笑死,一個(gè)胖子當(dāng)著我的面吹牛懈费,可吹牛的內(nèi)容都是我干的计露。 我是一名探鬼主播,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼楞捂,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼薄坏!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起寨闹,我...
    開(kāi)封第一講書(shū)人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤胶坠,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后繁堡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體沈善,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年椭蹄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了闻牡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绳矩,死狀恐怖罩润,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情翼馆,我是刑警寧澤割以,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站应媚,受9級(jí)特大地震影響严沥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜中姜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一消玄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦翩瓜、人聲如沸受扳。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)辞色。三九已至骨宠,卻和暖如春浮定,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背层亿。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工桦卒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人匿又。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓方灾,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親碌更。 傳聞我的和親對(duì)象是個(gè)殘疾皇子裕偿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容