新聞中心
本篇文章為大家展示了怎么使用Python序列(列表list和元組tuple),代碼簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
成都創(chuàng)新互聯(lián)公司專注于海陵企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,電子商務(wù)商城網(wǎng)站建設(shè)。海陵網(wǎng)站建設(shè)公司,為海陵等地區(qū)提供建站服務(wù)。全流程按需搭建網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
所謂序列,指的是一種包含多項(xiàng)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),序列包含的多個(gè)數(shù)據(jù)項(xiàng)(也叫成員)按順序排列,可通過(guò)索引來(lái)訪問(wèn)成員。
Python的常見序列類型包括字符串、列表和元組。前一章介紹過(guò)的字符串,其實(shí)就是一種常見的序列,通過(guò)索引訪問(wèn)字符串內(nèi)的字符程序就是序列的示范程序。
在具體的編程過(guò)程中,如果只是固定地保存多個(gè)數(shù)據(jù)項(xiàng),則不需要修改它們,此時(shí)就應(yīng)該使用元組;反之,就應(yīng)該使用列表。此外,在某些時(shí)候,程序需要使用不可變的對(duì)象,比如 Python 要求字典的 key 必須是不可變的,此時(shí)程序就只能使用元組。
創(chuàng)建列表和元組
創(chuàng)建列表和元組的語(yǔ)法也有點(diǎn)相似,區(qū)別只是創(chuàng)建列表使用方括號(hào),創(chuàng)建元組使用圓括號(hào),并在括號(hào)中列出元組的元素,元素之間以英文逗號(hào)隔開。
創(chuàng)建列表的語(yǔ)法格式如下:
[ele1,ele2,ele3,...]
創(chuàng)建元組的語(yǔ)法格式如下:
(ele1,ele2,ele3,...)
下面代碼示范了在程序中定義列表和元組:
a_tuple = ('crazyit', 20, 5.6, 'fkit', -17) print(a_tuple) # 訪問(wèn)第1個(gè)元素 print(a_tuple[0]) # crazyit # 訪問(wèn)第2個(gè)元素 print(a_tuple[1]) # 20 # 訪問(wèn)倒數(shù)第1個(gè)元素 print(a_tuple[-1]) # -17 # 訪問(wèn)倒數(shù)第2個(gè)元素 print(a_tuple[-2]) # -fkit
列表和元組切片
與前面介紹的字符串操作類似的是,列表和元組同樣也可使用索引獲取中間一段,這種用法被稱為 slice(分片或切片)。slice 的完整語(yǔ)法格式如下:
[start : end : step]
上面語(yǔ)法中 start、end 兩個(gè)索引值都可使用正數(shù)或負(fù)數(shù),其中負(fù)數(shù)表示從倒數(shù)開始。該語(yǔ)法表示從 start 索引的元素開始(包含),到 end 索引的元素結(jié)束(不包含)的所有元素,這和所有編程語(yǔ)言的約定類似。
step 表示步長(zhǎng),因此 step 使用負(fù)數(shù)沒(méi)有意義。
下面代碼示范了使用 start、end 獲取元組中間一段的用法:
a_tuple = ('crazyit', 20, 5.6, 'fkit', -17) # 訪問(wèn)從第2個(gè)到倒數(shù)第4個(gè)(不包含)所有元素 print(a_tuple[1: 3]) # (20, 5.6) # 訪問(wèn)從倒數(shù)第3個(gè)到倒數(shù)第1個(gè)(不包含)所有元素 print(a_tuple[-3: -1]) # (5.6, 'fkit') # 訪問(wèn)從第2個(gè)到倒數(shù)第2個(gè)(不包含)所有元素 print(a_tuple[1: -2]) # (20, 5.6) # 訪問(wèn)從倒數(shù)第3個(gè)到第5個(gè)(不包含)所有元素 print(a_tuple[-3: 4]) # (5.6, 'fkit')
如果指定 step 參數(shù),則可間隔 step 個(gè)元素再取元素。例如如下代碼:
b_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9) # 訪問(wèn)從第3個(gè)到第9個(gè)(不包含)、間隔為2的所有元素 print(b_tuple[2: 8: 2]) # (3, 5, 7) # 訪問(wèn)從第3個(gè)到第9個(gè)(不包含)、間隔為3的所有元素 print(b_tuple[2: 8: 3]) # (3, 6) # 訪問(wèn)從第3個(gè)到倒數(shù)第2個(gè)(不包含)、間隔為3的所有元素 print(b_tuple[2: -2: 2]) # (3, 5, 7)
加法
列表和元組支持加法運(yùn)算,加法的和就是兩個(gè)列表或元組所包含的元素的總和。
需要指出的是,列表只能和列表相加;元組只能和元組相加;元組不能直接和列表相加。
如下代碼示范了元組和列表的加法運(yùn)算:
a_tuple = ('crazyit' , 20, -1.2) b_tuple = (127, 'crazyit', 'fkit', 3.33) # 計(jì)算元組相加 sum_tuple = a_tuple + b_tuple print(sum_tuple) # ('crazyit', 20, -1.2, 127, 'crazyit', 'fkit', 3.33) print(a_tuple) # a_tuple并沒(méi)有改變 print(b_tuple) # b_tuple并沒(méi)有改變 # 兩個(gè)元組相加 print(a_tuple + (-20 , -30)) # ('crazyit', 20, -1.2, -20, -30) # 下面代碼報(bào)錯(cuò):元組和列表不能直接相加 #print(a_tuple + [-20 , -30]) a_list = [20, 30, 50, 100] b_list = ['a', 'b', 'c'] # 計(jì)算列表相加 sum_list = a_list + b_list print(sum_list) # [20, 30, 50, 100, 'a', 'b', 'c'] print(a_list + ['fkit']) # [20, 30, 50, 100, 'fkit']
乘法
列表和元組可以和整數(shù)執(zhí)行乘法運(yùn)算,列表和元組乘法的意義就是把它們包含的元素重復(fù) N 次(N 就是被乘的倍數(shù))。
如下代碼示范了列表和元組的乘法:
a_tuple = ('crazyit' , 20) # 執(zhí)行乘法 mul_tuple = a_tuple * 3 print(mul_tuple) # ('crazyit', 20, 'crazyit', 20, 'crazyit', 20) a_list = [30, 'Python', 2] mul_list = a_list * 3 print(mul_list) # [30, 'Python', 2, 30, 'Python', 2, 30, 'Python', 2]
當(dāng)然,也可以對(duì)列表、元組同時(shí)進(jìn)行加法、乘法運(yùn)算。例如,把用戶輸入的日期翻譯成英文表示形式,即添加英文的“第”后綴。對(duì)于 1、2、3 來(lái)說(shuō),英文的“第”后綴分別用 st、nd、rd 代表,其他則使用 th 代表。
為此,可使用如下代碼來(lái)完成該轉(zhuǎn)換:
# 同時(shí)對(duì)元組使用加法、乘法 order_endings = ('st', 'nd', 'rd')\ + ('th',) * 17 + ('st', 'nd', 'rd')\ + ('th',) * 7 + ('st',) # 將會(huì)看到st、nd、rd、17個(gè)th、st、nd、rd、7個(gè)th、st print(order_endings) day = input("輸入日期(1-31):") # 將字符串轉(zhuǎn)成整數(shù) day_int = int(day) print(day + order_endings[day_int - 1])
該程序中,同時(shí)對(duì) ('th',) 元組使用了乘法,再將乘法得到的結(jié)果使用加法連接起來(lái),最終得到一個(gè)元組,該元組共有 31 個(gè)元素。
長(zhǎng)度、最大值和最小值
Python 提供了內(nèi)置的 ten()、max()、min() 全局函數(shù)來(lái)獲取元組或列表的長(zhǎng)度、最大值和最小值。
由于 max()、min() 要對(duì)元組、列表中的元素比較大小,因此程序要求傳給 max()、min() 函數(shù)的元組、列表的元素必須是相同類型且可以比較大小。例如如下代碼:
# 元素都是數(shù)值的元組 a_tuple = (20, 10, -2, 15.2, 102, 50) # 計(jì)算最大值 print(max(a_tuple)) # 102 # 計(jì)算最小值 print(min(a_tuple)) # -2 # 計(jì)算長(zhǎng)度 print(len(a_tuple)) # 6 # 元素都是字符串的列表 b_list = ['crazyit', 'fkit', 'Python', 'Kotlin'] # 計(jì)算最大值(依次比較每個(gè)字符的ASCII碼值,先比較第一個(gè)字符,若相同,繼續(xù)比較第二個(gè)字符,以此類推) print(max(b_list)) # fkit(26個(gè)小寫字母的ASCII碼為97~122) # 計(jì)算最小值 print(min(b_list)) # Kotlin (26個(gè)大寫字母的ASCII碼為65~90) # 計(jì)算長(zhǎng)度 print(len(b_list)) # 4
在上面代碼中,首先使用 3 個(gè)函數(shù)對(duì)元素都是數(shù)值的元組進(jìn)行處理,可以看到程序獲取元組的最大值、最小值等。程序后半部分使用 3 個(gè)函數(shù)對(duì)元素都是宇符串的列表進(jìn)行處理,也可以看到程序獲取列表的最大值、最小值等,這說(shuō)明 Python 的字符串也是可比較大小的,即 Python 依次按字符串中每個(gè)字符對(duì)應(yīng)的編碼來(lái)比較字符串的大小。
上述內(nèi)容就是怎么使用Python序列(列表list和元組tuple),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
新聞名稱:怎么使用Python序列(列表list和元組tuple)
網(wǎng)站網(wǎng)址:http://fisionsoft.com.cn/article/podcic.html