python基礎(chǔ)教程之元組操作使用詳解
簡(jiǎn)介
tuple
1.元組是以圓括號(hào)“()”包圍的數(shù)據(jù)集合,不同成員以“,”分隔。通過(guò)下標(biāo)進(jìn)行訪問(wèn)
2.不可變序列,可以看做不可變的列表,與列表不同:元組中數(shù)據(jù)一旦確立就不能改變(所以沒(méi)有類似列表的增刪改操作,只有基本序列操作)
3.支持任意類型,任意嵌套以及常見(jiàn)的序列操作
4.元組通常用在使語(yǔ)句或用戶定義的函數(shù)能夠安全地采用一組值的時(shí)候,即被使用的元組的值不會(huì)改變
聲明及使用
t = () #空元組
t =(1,) #單個(gè)元素元組,注意逗號(hào)必須
t =(1,2,3)
1 in t #判斷
2 not in t
#其他同序列基本操作:分片,索引
print t[0]
print t[-1]
print t[:2]
#不會(huì)對(duì)原來(lái)元組造成影響
print t+(4,5) #返回新元組(1,2,3,4,5)
print t * 2 #(1,2,3,1,2,3)
t.index(1)
t.count(1)
#列表元組轉(zhuǎn)換
l = [1,2,3]
lt = tuple(l)
tl = list(lt)
lt_sorted = sorted(l) #對(duì)元組進(jìn)行排序,返回是列表
#字符串轉(zhuǎn)元組(得到字符元組序列)
print tuple('hello) #('h','e','l','l','o')
tuple沒(méi)有append/extend/remove/pop等增刪改操作tuple沒(méi)有find
查看幫助
help(tuple)
用途
1.賦值
t = 1,2,3 #等價(jià) t = (1, 2, 3)
x, y, z = t #序列拆封,要求左側(cè)變量數(shù)目和右側(cè)序列長(zhǎng)度相等
2.函數(shù)多個(gè)返回值
def test():
return (1,2)
x, y = test()
3.傳參[強(qiáng)制不改變?cè)夹蛄衇
def print_list(l):
t = tuple(l) #或者t = l[:]
dosomething()
4.字符串格式化
print '%s is %s years old' % ('tom', 20)
5.作為字典的key
優(yōu)點(diǎn)
1.性能
tuple比列表操作速度快
若需要定義一個(gè)常量集,或者是只讀序列,唯一的操作是不斷遍歷之,使用tuple代替list
>>> a = tuple(range(1000))
>>> b = range(1000)
>>> def test_t():
... for i in a:
... pass
...
>>> def test_l():
... for i in b:
... pass
...
>>> from timeit import Timer
>>> at = Timer("test_t()", "from __main__ import test_t")
>>> bt = Timer("test_l()", "from __main__ import test_l")
簡(jiǎn)單測(cè)試
>>> at.repeat(3, 100000)
[1.526214838027954, 1.5191287994384766, 1.5181210041046143]
>>> bt.repeat(3, 100000)
[1.5545141696929932, 1.557785987854004, 1.5511009693145752]
2.不可變性
對(duì)不需要的數(shù)據(jù)進(jìn)行“寫保護(hù)”,使代碼更加安全
不可變性,若在程序中以列表形式傳遞對(duì)象集合,可能在任何地方被改變,使用元組,則不能
不可變性只適用于元組本身頂層而非其內(nèi)容,例如元組內(nèi)部的列表可以修改
l = [1,2,3]
t = (1,2,l)
l.append(4)
不可變性提供了某種完整性,規(guī)范化,確保不會(huì)被修改,保持某種固定關(guān)系
修改的方法
tuple -> list -> tuple
相關(guān)文章
Python正則表達(dá)式匹配數(shù)字和小數(shù)的方法
這篇文章主要介紹了Python正則匹配數(shù)字和小數(shù)的方法,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
使用python svm實(shí)現(xiàn)直接可用的手寫數(shù)字識(shí)別
這篇文章主要介紹了使用python svm實(shí)現(xiàn)直接可用的手寫數(shù)字識(shí)別,現(xiàn)在網(wǎng)上很多代碼是良莠不齊,真是一言難盡,于是記錄一下,能夠運(yùn)行成功并識(shí)別成功的一個(gè)源碼2021-08-08
Python返回?cái)?shù)組/List長(zhǎng)度的實(shí)例
今天小編就為大家分享一篇Python返回?cái)?shù)組/List長(zhǎng)度的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
通過(guò)字符串導(dǎo)入 Python 模塊的方法詳解
這篇文章主要介紹了通過(guò)字符串導(dǎo)入 Python 模塊的方法詳解,本文通過(guò)實(shí)例結(jié)合,給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10
簡(jiǎn)單的Python2.7編程初學(xué)經(jīng)驗(yàn)總結(jié)
這篇文章主要是作者寫給Python2.7編程初學(xué)者的經(jīng)驗(yàn)總結(jié),側(cè)重于包管理、代碼調(diào)試等實(shí)際使用方面,需要的朋友可以參考下2015-04-04
windows 10 設(shè)定計(jì)劃任務(wù)自動(dòng)執(zhí)行 python 腳本的方法
這篇文章主要介紹了windows 10 設(shè)定計(jì)劃任務(wù)自動(dòng)執(zhí)行 python 腳本的方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
Python中Word文件自動(dòng)化操作小結(jié)
Python-docx是一個(gè)Python庫(kù),提供了對(duì)Microsoft?Word(.docx文件)的讀寫和修改功能,本文主要介紹了如何使用Python-docx實(shí)現(xiàn)Word文件自動(dòng)化操作,需要的可以參考下2024-04-04
解決Pycharm調(diào)用Turtle時(shí) 窗口一閃而過(guò)的問(wèn)題
今天小編就為大家分享一篇解決Pycharm調(diào)用Turtle時(shí) 窗口一閃而過(guò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02

