python 元組的使用方法
元組——tuple
列表非常適合用于存儲(chǔ)在程序運(yùn)行期間可能變化的數(shù)據(jù)集。
列表是可以修改的,但元組是不可修改的
Python將不能修改的值稱為不可變的,而不可變的列表被稱為元組
1. 元組的創(chuàng)建和刪除
(1)使用賦值運(yùn)算符直接創(chuàng)建元組
語法:
tuplename = (element1, element2, element3, ....)
在Python中,元組使用一對(duì)小括號(hào)將所有的元素括起來,但是小括號(hào)不是必須的,只要將一組值用逗號(hào)分隔開,Python就可以使其為元組。
verse = '漁舟唱晚', '高山流水', '出水蓮', '漢宮秋月'# 元組
如果要?jiǎng)?chuàng)建的元組中只有一個(gè)元素,需要在元素的后面加上逗號(hào),否則Python使其為字符串。
verse1 = (’一片冰心在玉壺’)# 字符串verse2 = (’一片冰心在玉壺’,)# 元組
(2)創(chuàng)建空的元組
emptytuple = ()
(3)創(chuàng)建數(shù)值元組
可以使用tuple()函數(shù)直接將range()函數(shù)循環(huán)出來的結(jié)果轉(zhuǎn)換為數(shù)值元組
tuple(data)data-可迭代的對(duì)象
(4)刪除元組
del tuplename
del語句在實(shí)際開發(fā)中,并不常用,因?yàn)镻ython自帶的垃圾回收機(jī)制會(huì)自動(dòng)銷毀不用的元組,所以即使我們不手動(dòng)將其刪除,Python也會(huì)自動(dòng)將其回收。
2. 訪問元組元素
通過for循環(huán)
coffee_name = (’藍(lán)山’, ’卡布奇諾’, ’曼特寧’, ’摩卡’, ’麝香貓’, ’哥倫比亞’)print(’您好,歡迎光臨 ~ 伊米咖啡館 ~n我店有:’)for name in coffee_name: print(name, '咖啡', end=’ ’)’’’
輸出
您好,歡迎光臨 ~ 伊米咖啡館 ~我店有:藍(lán)山 咖啡 卡布奇諾 咖啡 曼特寧 咖啡 摩卡 咖啡 麝香貓 咖啡 哥倫比亞 咖啡 ’’’
for + enumerate()
enumerate():——枚舉
該函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組)組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般在for循環(huán)中使用。
team = (’火箭’, ’勇士’, ’開拓者’, ’雷霆’, ’爵士’, ’馬刺’)for index, item in enumerate(team): if index % 2 == 0: print(item + ’tt’, end=’’) else: print(item)
輸出
火箭 勇士開拓者 雷霆爵士 馬刺
3. 修改元組的元素
元組是不可變序列,所以我們不能對(duì)它的單個(gè)元素值進(jìn)行修改。通過對(duì)元組進(jìn)行重新賦值進(jìn)行修改。
元組和元組是可以進(jìn)行連接的,但連接的兩者必須都是元組才行,否則是錯(cuò)誤的,要連接的元組只有一個(gè)元素時(shí),一定不要忘記后面的逗號(hào)。
4. 元組推導(dǎo)式
>>> import random>>> random_number = (random.randint(10,100) for i in range(10))>>> random_number<generator object <genexpr> at 0x0000021A177BDED0># 生成器對(duì)象>>> tuple(random_number)# 轉(zhuǎn)換成元組(28, 63, 34, 98, 96, 36, 87, 35, 25, 44)
從上面的執(zhí)行結(jié)果可以看出,使用元組推導(dǎo)式生成的結(jié)果并不是一個(gè)元組或列表,而是一個(gè)生成器對(duì)象,這一點(diǎn)和列表推導(dǎo)式不同。
要將該生成器對(duì)象轉(zhuǎn)換成元組,使用tuple()方法,轉(zhuǎn)換成列表,使用list()方法。
示例一:
# 通過__next()__方法遍歷# 在Python2.x中__next()__方法對(duì)應(yīng)的是next()方法,也是用于遍歷生成器對(duì)象的。>>> number = (i for i in range(3))>>> number<generator object <genexpr> at 0x0000021A1781EA20>>>> number.__next__()0>>> number.__next__()1>>> number.__next__()2>>> number.__next__()Traceback (most recent call last): File '<pyshell#11>', line 1, in <module> number.__next__()StopIteration# 停止迭代
示例二:
# 通過for循環(huán)遍歷>>> number = (i for i in range(4))>>> number<generator object <genexpr> at 0x0000021A1781EA98>>>> for i in number:print(i, end=’’) 0123>>> print(tuple(number))()
從上面的兩個(gè)示例中可以看出:無論通過那種方法遍歷,如果想要再次使用該生成器對(duì)象,必須重新創(chuàng)建一個(gè)生成器對(duì)象,因?yàn)楸闅v后該生成器對(duì)象就不存在了。
5. 元組與列表的區(qū)別
(1)列表可變,元組不可變,除非整體替換。
(2)列表可以用append()、extend()、insert()、remove()、pop()實(shí)現(xiàn)添加和刪除功能,而元組沒有這幾個(gè)方法。
(3)列表支持通過切邊進(jìn)行修改和訪問,而元組只支持訪問,不支持修改,再不進(jìn)行任何修改時(shí),建議使用元組。
(4)元組比列表的訪問和處理速度快。
(5)列表不能作為字典的鍵,而元組可以。
以上就是python 元組的使用方法的詳細(xì)內(nèi)容,更多關(guān)于python元組使用的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向2. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說明3. CSS hack用法案例詳解4. PHP設(shè)計(jì)模式中工廠模式深入詳解5. 用css截取字符的幾種方法詳解(css排版隱藏溢出文本)6. ASP+ajax實(shí)現(xiàn)頂一下、踩一下同支持與反對(duì)的實(shí)現(xiàn)代碼7. .NET中l(wèi)ambda表達(dá)式合并問題及解決方法8. ThinkPHP5實(shí)現(xiàn)JWT Token認(rèn)證的過程(親測(cè)可用)9. asp中response.write("中文")或者js中文亂碼問題10. JSP數(shù)據(jù)交互實(shí)現(xiàn)過程解析
