91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Python序列(列表list和元組tuple)

發布時間:2020-08-26 16:08:05 來源:億速云 閱讀:157 作者:Leah 欄目:編程語言

本篇文章為大家展示了怎么使用Python序列(列表list和元組tuple),代碼簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

所謂序列,指的是一種包含多項數據的數據結構,序列包含的多個數據項(也叫成員)按順序排列,可通過索引來訪問成員。

Python的常見序列類型包括字符串、列表和元組。前一章介紹過的字符串,其實就是一種常見的序列,通過索引訪問字符串內的字符程序就是序列的示范程序。

在具體的編程過程中,如果只是固定地保存多個數據項,則不需要修改它們,此時就應該使用元組;反之,就應該使用列表。此外,在某些時候,程序需要使用不可變的對象,比如 Python 要求字典的 key 必須是不可變的,此時程序就只能使用元組。

創建列表和元組

創建列表和元組的語法也有點相似,區別只是創建列表使用方括號,創建元組使用圓括號,并在括號中列出元組的元素,元素之間以英文逗號隔開。

創建列表的語法格式如下:

[ele1,ele2,ele3,...]

創建元組的語法格式如下:

(ele1,ele2,ele3,...)

下面代碼示范了在程序中定義列表和元組:

a_tuple = ('crazyit', 20, 5.6, 'fkit', -17)
print(a_tuple)
# 訪問第1個元素
print(a_tuple[0]) # crazyit
# 訪問第2個元素
print(a_tuple[1]) # 20
# 訪問倒數第1個元素
print(a_tuple[-1]) # -17
# 訪問倒數第2個元素
print(a_tuple[-2]) # -fkit

列表和元組切片

與前面介紹的字符串操作類似的是,列表和元組同樣也可使用索引獲取中間一段,這種用法被稱為 slice(分片或切片)。slice 的完整語法格式如下:

[start : end : step]

上面語法中 start、end 兩個索引值都可使用正數或負數,其中負數表示從倒數開始。該語法表示從 start 索引的元素開始(包含),到 end 索引的元素結束(不包含)的所有元素,這和所有編程語言的約定類似。

step 表示步長,因此 step 使用負數沒有意義。

下面代碼示范了使用 start、end 獲取元組中間一段的用法:

a_tuple = ('crazyit', 20, 5.6, 'fkit', -17)
# 訪問從第2個到倒數第4個(不包含)所有元素
print(a_tuple[1: 3]) # (20, 5.6)
# 訪問從倒數第3個到倒數第1個(不包含)所有元素
print(a_tuple[-3: -1]) # (5.6, 'fkit')
# 訪問從第2個到倒數第2個(不包含)所有元素
print(a_tuple[1: -2]) # (20, 5.6)
# 訪問從倒數第3個到第5個(不包含)所有元素
print(a_tuple[-3: 4]) # (5.6, 'fkit')

如果指定 step 參數,則可間隔 step 個元素再取元素。例如如下代碼:

b_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9)
# 訪問從第3個到第9個(不包含)、間隔為2的所有元素
print(b_tuple[2: 8: 2]) # (3, 5, 7)
# 訪問從第3個到第9個(不包含)、間隔為3的所有元素
print(b_tuple[2: 8: 3]) # (3, 6)
# 訪問從第3個到倒數第2個(不包含)、間隔為3的所有元素
print(b_tuple[2: -2: 2]) # (3, 5, 7)

加法

列表和元組支持加法運算,加法的和就是兩個列表或元組所包含的元素的總和。

需要指出的是,列表只能和列表相加;元組只能和元組相加;元組不能直接和列表相加。

如下代碼示范了元組和列表的加法運算:

a_tuple = ('crazyit' , 20, -1.2)
b_tuple = (127, 'crazyit', 'fkit', 3.33)
# 計算元組相加
sum_tuple = a_tuple + b_tuple
print(sum_tuple) # ('crazyit', 20, -1.2, 127, 'crazyit', 'fkit', 3.33)
print(a_tuple) # a_tuple并沒有改變
print(b_tuple) # b_tuple并沒有改變
# 兩個元組相加
print(a_tuple + (-20 , -30)) # ('crazyit', 20, -1.2, -20, -30)
# 下面代碼報錯:元組和列表不能直接相加
#print(a_tuple + [-20 , -30])
a_list = [20, 30, 50, 100]
b_list = ['a', 'b', 'c']
# 計算列表相加
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']

乘法

列表和元組可以和整數執行乘法運算,列表和元組乘法的意義就是把它們包含的元素重復 N 次(N 就是被乘的倍數)。

如下代碼示范了列表和元組的乘法:

a_tuple = ('crazyit' , 20)
# 執行乘法
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]

當然,也可以對列表、元組同時進行加法、乘法運算。例如,把用戶輸入的日期翻譯成英文表示形式,即添加英文的“第”后綴。對于 1、2、3 來說,英文的“第”后綴分別用 st、nd、rd 代表,其他則使用 th 代表。

為此,可使用如下代碼來完成該轉換:

# 同時對元組使用加法、乘法
order_endings = ('st', 'nd', 'rd')\
    + ('th',) * 17 + ('st', 'nd', 'rd')\
    + ('th',) * 7 + ('st',)
# 將會看到st、nd、rd、17個th、st、nd、rd、7個th、st
print(order_endings)
day = input("輸入日期(1-31):")
# 將字符串轉成整數
day_int = int(day)
print(day + order_endings[day_int - 1])

該程序中,同時對 ('th',) 元組使用了乘法,再將乘法得到的結果使用加法連接起來,最終得到一個元組,該元組共有 31 個元素。

長度、最大值和最小值

Python 提供了內置的 ten()、max()、min() 全局函數來獲取元組或列表的長度、最大值和最小值。

由于 max()、min() 要對元組、列表中的元素比較大小,因此程序要求傳給 max()、min() 函數的元組、列表的元素必須是相同類型且可以比較大小。例如如下代碼:

# 元素都是數值的元組
a_tuple = (20, 10, -2, 15.2, 102, 50)
# 計算最大值
print(max(a_tuple)) # 102
# 計算最小值
print(min(a_tuple)) # -2
# 計算長度
print(len(a_tuple)) # 6
# 元素都是字符串的列表
b_list = ['crazyit', 'fkit', 'Python', 'Kotlin']
# 計算最大值(依次比較每個字符的ASCII碼值,先比較第一個字符,若相同,繼續比較第二個字符,以此類推)
print(max(b_list)) # fkit(26個小寫字母的ASCII碼為97~122)
# 計算最小值
print(min(b_list)) # Kotlin (26個大寫字母的ASCII碼為65~90)
# 計算長度
print(len(b_list)) # 4

在上面代碼中,首先使用 3 個函數對元素都是數值的元組進行處理,可以看到程序獲取元組的最大值、最小值等。程序后半部分使用 3 個函數對元素都是宇符串的列表進行處理,也可以看到程序獲取列表的最大值、最小值等,這說明 Python 的字符串也是可比較大小的,即 Python 依次按字符串中每個字符對應的編碼來比較字符串的大小。

上述內容就是怎么使用Python序列(列表list和元組tuple),你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

英山县| 永宁县| 高唐县| 岗巴县| 报价| 红原县| 韶山市| 台前县| 和顺县| 长春市| 射洪县| 天台县| 西和县| 舟山市| 甘孜县| 民勤县| 曲沃县| 阿坝县| 青川县| 自治县| 大同市| 明水县| 克东县| 依安县| 浑源县| 化德县| 安康市| 昆明市| 瑞金市| 桐柏县| 深泽县| 尼勒克县| 永年县| 黄龙县| 明溪县| 沁源县| 昂仁县| 武邑县| 仁化县| 阳高县| 旌德县|