零基礎(chǔ)Python完全自學(xué)教程14:Python中的序列知識(shí)詳解
歡迎你來(lái)到站長(zhǎng)學(xué)堂,學(xué)習(xí)站長(zhǎng)在線出品的在線課程《零基礎(chǔ)Python完全自學(xué)教程》今天給大家分享的是第14課《Python中的序列知識(shí)詳解》。本節(jié)課主要內(nèi)容有:序列索引、序列切片、序列相加、序列相乘、序列成員資格及計(jì)算序列的最大值、最小值和長(zhǎng)度。
永久美國(guó)免備案虛擬主機(jī)1元1天,15元1月,100元1年,1000元永久
站長(zhǎng)在線旗下答案網(wǎng)站,全站所有題目,免費(fèi)查看答案和答案解析
歡迎你來(lái)到站長(zhǎng)學(xué)堂,學(xué)習(xí)站長(zhǎng)在線出品的在線課程《零基礎(chǔ)python完全自學(xué)教程》今天給大家分享的是第14課《Python中的序列知識(shí)詳解》。本節(jié)課主要內(nèi)容有:序列索引、序列切片、序列相加、序列相乘、序列成員資格及計(jì)算序列的最大值、最小值和長(zhǎng)度。
在數(shù)學(xué)中,序列也叫做數(shù)列,是指按照一定的順序和邏輯排列的一列數(shù)。
在Python中,序列是最基本的數(shù)據(jù)結(jié)構(gòu)。
14.1、Python中的序列索引
序列中的每一個(gè)元素都有一個(gè)屬于自己的編號(hào),我們稱為索引(index)。從起始元素開(kāi)始,索引值從0開(kāi)始編號(hào),持續(xù)遞增。即下標(biāo)為0表示第一個(gè)元素,下標(biāo)為1表示第二個(gè)元素,以此類推,如下圖所示:
正數(shù)序列索引示意圖
在Python中,不僅有正數(shù)序列索引,還有負(fù)數(shù)序列索引。這個(gè)索引是從右向左計(jì)數(shù),也就是說(shuō)從最后一個(gè)元素開(kāi)始,索引值從-1開(kāi)始遞減。即最后一個(gè)元素的索引值為-1,而倒數(shù)第二個(gè)為-2,以此類推,如下圖所示:
負(fù)數(shù)序列索引示意圖
注意,在使用負(fù)值作為列序中各元素的索引值時(shí),是從 -1 開(kāi)始,而不是從 0 開(kāi)始。即最后一個(gè)元素的下標(biāo)為-1,這是為了防止與第一個(gè)元素重合。
無(wú)論是采用正索引值,還是負(fù)索引值,都可以訪問(wèn)序列中的任何元素。以字符串為例,訪問(wèn)“我在站長(zhǎng)在線學(xué)Python”的第三個(gè)元素和最后一個(gè)元素,可以使用如下的代碼:
a = "我在站長(zhǎng)在線學(xué)Python"
print(a[2]) #輸出第3個(gè)元素
print(a[-1]) #輸出最后一個(gè)元素
執(zhí)行結(jié)果如下:
站
n
>>>
14.2、Python中的序列切片
切片,顧名思義就是切取一個(gè)片段。在廚房中,就是把要做的菜,切成一片一片的塊狀物體,以便翻炒。但是在Python中,切片操作是訪問(wèn)序列中元素的另一種方法,它可以訪問(wèn)一定范圍內(nèi)的元素,通過(guò)切片操作,可以生成一個(gè)新的序列。
序列實(shí)現(xiàn)切片操作的語(yǔ)法格式如下:
sname[start : end : step]
其中,各個(gè)參數(shù)的含義分別說(shuō)明如下:
sname:表示序列的名稱。
start:表示切片的開(kāi)始索引位置(包括該位置),此參數(shù)也可以不指定,會(huì)默認(rèn)為 0,也就是從序列的開(kāi)頭進(jìn)行切片。
end:表示切片的結(jié)束索引位置(不包括該位置),如果不指定,則默認(rèn)為序列的長(zhǎng)度。
step:表示在切片的步長(zhǎng)。如果省略,則默認(rèn)步長(zhǎng)為1。若省略步長(zhǎng),則最后一個(gè)冒號(hào)就可以省略。
實(shí)例講解:
通過(guò)切片獲取列表中的第2-6個(gè)元素,以及獲取第2、4、6個(gè)元素,代碼如下:
a = ["我們平等的來(lái)到這個(gè)世界上",
"就像是無(wú)數(shù)的雨滴降落在地面上",
"沒(méi)有差別的誕生",
"卻有著不同的命運(yùn)",
"我們可以做一滴平凡的雨滴",
"匯入生活的小溪",
"為這個(gè)世界增添光彩",
"我們可以做一滴奮進(jìn)的雨滴",
"即使粉身碎骨也要發(fā)出燦爛的光芒",
"成為奪目的彩虹"]
print(a[1:6]) #獲取第2~6個(gè)元素
print(a[1:6:2]) #獲取第2、4、6個(gè)元素
運(yùn)行結(jié)果如下:
['就像是無(wú)數(shù)的雨滴降落在地面上', '沒(méi)有差別的誕生', '卻有著不同的命運(yùn)', '我們可以做一滴平凡的雨滴', '匯入生活的小溪']
['就像是無(wú)數(shù)的雨滴降落在地面上', '卻有著不同的命運(yùn)', '匯入生活的小溪']
>>>
說(shuō)明:如果想要切片整個(gè)序列(相對(duì)于復(fù)制),可以將start和end全部省略,但中間的冒號(hào)要保留。如:a[:]代表切片整個(gè)名稱為a的序列。(全部復(fù)制)。
14.3、Python中的序列相加
在Python中,序列相加支持兩種或者兩種以上的相同類型的序列相加。即兩個(gè)或者兩個(gè)以上的序列進(jìn)行連接。但是不會(huì)去除重復(fù)的元素。操作方法:序列相加是使用“+”號(hào)運(yùn)算符實(shí)現(xiàn)的。如:
a1 = "我在站長(zhǎng)在線,"
a2 = "學(xué)習(xí)Python,"
a3 = "我相信Python是最好學(xué)的編程語(yǔ)言。"
print(a1 + a2 +a3)
運(yùn)行結(jié)果如下:
我在站長(zhǎng)在線,學(xué)習(xí)Python,我相信Python是最好學(xué)的編程語(yǔ)言。
>>>
在Python中進(jìn)行序列相加時(shí),相同類型的序列是指,同為列表,元組,字符串等,序列中的元素可以不相同,如:
a = [1,2,3,4,5,6,7]
b = ["人生苦短","我學(xué)Python"]
print(a + b)
運(yùn)行結(jié)果為:
[1, 2, 3, 4, 5, 6, 7, '人生苦短', '我學(xué)Python']
>>>
但是,不能是列表和元組相加,也不能是列表和字符串相加,下面代碼就是錯(cuò)誤的:
a = [1,2,3,4,5,6,7]
b = "1的倍數(shù)"
print(a +b )
輸出的結(jié)果是語(yǔ)法錯(cuò)誤:
Traceback (most recent call last):
File "D:\Python\Python310\Doc\000.py", line 3, in <module>
print(a +b )
TypeError: can only concatenate list (not "str") to list
>>>
14.4、Python中的序列相乘
在Python中,序列相乘也叫序列乘法。使用數(shù)字n乘以一個(gè)序列會(huì)生成新的序列。新的序列內(nèi)容為原來(lái)序列的n次重復(fù)。
例如:把下面序列乘以3后生成一個(gè)新的序列,代碼如下:
a = ["建一個(gè)網(wǎng)站","創(chuàng)一番事業(yè)"]
print(a * 3)
代碼運(yùn)行以后,結(jié)果如下:
['建一個(gè)網(wǎng)站', '創(chuàng)一番事業(yè)', '建一個(gè)網(wǎng)站', '創(chuàng)一番事業(yè)', '建一個(gè)網(wǎng)站', '創(chuàng)一番事業(yè)']
>>>
比較特殊的是,列表類型在進(jìn)行乘法運(yùn)算時(shí),還可以實(shí)現(xiàn)初始化指定長(zhǎng)度列表的功能。
例如如下的代碼,將創(chuàng)建一個(gè)長(zhǎng)度為 5 的列表,列表中的每個(gè)元素都是 None,表示什么都沒(méi)有。
list = [None]*5
print(list)
運(yùn)行代碼輸出結(jié)果為:
[None, None, None, None, None]
>>>
None是保留字,有特殊的意義。如果把None改成其他字符串,如One,就會(huì)報(bào)錯(cuò):
list = [One]*5
print(list)
報(bào)錯(cuò)如下:
Traceback (most recent call last):
File "D:\Python\Python310\Doc\000.py", line 1, in <module>
list = [One]*5
NameError: name 'One' is not defined
>>>
14.5、Python中的序列成員資格
Python中的序列成員資格指的是檢查某個(gè)元素是否是序列的成員。
在Python中,可以使用in關(guān)鍵字檢查某個(gè)元素是否是序列的成員,即檢查某個(gè)元素是否在該序列中。
語(yǔ)法格式如下:
要檢查的元素 in 指定的序列
舉例:檢查 字符‘z’是否包含在字符串“olzz.com”中,再檢查字符“k”是否在字符串“olzz.com”中??梢詧?zhí)行如下代碼:
# 檢查 字符‘z’是否包含在字符串“olzz.com”中
a = "olzz.com"
print("z" in a)
代碼執(zhí)行結(jié)果為:
True
>>>
# 檢查 字符‘k’是否包含在字符串“olzz.com”中
a = "olzz.com"
print("k" in a)
代碼執(zhí)行結(jié)果為:
False
>>>
另外,和 in 關(guān)鍵字用法相同,但功能恰好相反的,還有 not in 關(guān)鍵字,它用來(lái)檢查某個(gè)元素是否不包含在指定的序列中,比如說(shuō):
# 檢查 字符‘z’是否包含在字符串“olzz.com”中
a = "olzz.com"
print("z" not in a)
運(yùn)行結(jié)果為:
False
>>>
14.6、序列中的最大值max()、最小值min()和長(zhǎng)度len()
在Python中,提供了內(nèi)置的函數(shù)來(lái)計(jì)算序列的最大值、最小值和長(zhǎng)度。分別是:
1、使用max()函數(shù)返回序列中的最大元素。
2、使用min()函數(shù)返回序列中的最小元素。
3、使用len()函數(shù)計(jì)算序列的長(zhǎng)度,即返回序列中包含了多少個(gè)元素。
例如:定義一個(gè)9個(gè)元素的序列(1,2,3,4,5,6,7,8,9),通過(guò)不同的函數(shù),計(jì)算各種結(jié)果:
1、通過(guò)max()計(jì)算列表中的最大元素,代碼如下:
number = [1,2,3,4,5,6,7,8,9]
print("序列",number,"中最大值為:",max(number))
執(zhí)行結(jié)果如下:
序列 [1, 2, 3, 4, 5, 6, 7, 8, 9] 中最大值為: 9
>>>
2、通過(guò)min()函數(shù)計(jì)算列表中的最小元素,代碼如下:
number = [1,2,3,4,5,6,7,8,9]
print("序列",number,"中最小值為:",min(number))
執(zhí)行結(jié)果如下:
序列 [1, 2, 3, 4, 5, 6, 7, 8, 9] 中最小值為: 1
>>>
3、通過(guò)len()函數(shù)計(jì)算列表的長(zhǎng)度,代碼如下:
number = [1,2,3,4,5,6,7,8,9]
print("序列",number,"的長(zhǎng)度為:",len(number))
執(zhí)行結(jié)果如下:
序列 [1, 2, 3, 4, 5, 6, 7, 8, 9] 的長(zhǎng)度為: 9
>>>
到此為止,序列中的最大值max()、最小值min()和長(zhǎng)度len()的講解就完成了。
當(dāng)然,除了上面函數(shù),站長(zhǎng)在線還統(tǒng)計(jì)了,與序列相關(guān)的內(nèi)置函數(shù)匯總:
1、len() 函數(shù):計(jì)算序列的長(zhǎng)度,即返回序列中包含多少個(gè)元素。
2、max()函數(shù): 找出序列中的最大元素。
3、min()函數(shù): 找出序列中的最小元素。
4、list()函數(shù): 將序列轉(zhuǎn)換為列表。
5、str() 函數(shù):將序列轉(zhuǎn)換為字符串。
6、sum()函數(shù): 計(jì)算元素和。
7、sorted() 函數(shù):對(duì)元素進(jìn)行排序。
8、reversed() 函數(shù):反向序列中的元素。
9、enumerate() 函數(shù):將序列組合為一個(gè)索引序列,多用在 for 循環(huán)中。
下節(jié)預(yù)告:零基礎(chǔ)Python完全自學(xué)教程15:Python中的列表
相關(guān)閱讀:
2、安裝python及寫(xiě)第一個(gè)Python程序
9、Python中運(yùn)算符的優(yōu)先級(jí)和條件表達(dá)式
13、Python中的break語(yǔ)句、continue語(yǔ)句和pass語(yǔ)句
文末福利:
1、關(guān)注站長(zhǎng)在線官方公眾號(hào)【站長(zhǎng)在線】微信號(hào):olzzcom ,文末也有公眾號(hào)二維碼,關(guān)注公眾號(hào)以后回復(fù)python,本站精心整理的Python書(shū)籍、軟件、工具都實(shí)時(shí)更新哦!本站所安裝的python3.10、 IDLE中文版 、PyCharm、Visual Studio Code、Sublime Text4等都在里面哦!
2、站長(zhǎng)在線官方微信交流群已經(jīng)開(kāi)通了,微信掃碼進(jìn)入,一起交流,一起進(jìn)步!
本文地址:http://003188.cn/pythonxulie.html
阿里云虛擬主機(jī)1G空間,120元一年
香港、美國(guó)虛擬主機(jī)100元一年,1000元永久
騰訊云雙十一0.4折起,2核8G5M三年僅700元,2核4G8M三年僅198元
猜你喜歡