列表同元組一樣诡蜓,是一個(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_limit
和upper_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)照到哪里哪里亮厘灼,消極的人像月亮初一十五不一樣.