tuple(元組)作為python中比較標(biāo)志的數(shù)據(jù)結(jié)構(gòu),與list(列表)類似(這里不詳細(xì)講述列表),不同之處在于tuple的元素不能修改(一定程度上是這樣的量瓜,后面會(huì)提到)。下面我來舉幾個(gè)例子途乃。
舉例子之前绍傲,先說明幾個(gè)概念:
Python id() 函數(shù):
用來獲取對(duì)象地址
語法:id([object])?
返回對(duì)象的內(nèi)存地址
舉個(gè)例子如圖1-1
Python 中 is 和 == :
is 比較的是兩個(gè)實(shí)例對(duì)象是不是完全相同,它們是不是同一個(gè)對(duì)象耍共,占用的內(nèi)存地址是否相同
== 比較的是兩個(gè)對(duì)象的內(nèi)容是否相等
差別在于is比較的是對(duì)象是否完全相同烫饼,即所占用的內(nèi)存地址是否相同
而 == 比較的是內(nèi)容是否相同(外表美和內(nèi)在美)?
舉個(gè)例子如圖1-2(圖中兩句一樣的句子,但是由于地址不同试读,所以is的時(shí)候兩邊是不相等的杠纵,而 == 由于兩句內(nèi)容一樣,所以返回true)
好钩骇,鋪墊了一丟丟比藻,我們要討論本篇的主角:Tuple
我們先定義一個(gè)元組tuple
tupleA = ('a','b','c')
先嘗試用list的方法操作,試著添加一個(gè)倘屹,tupleA.append("test")
報(bào)錯(cuò)银亲!說了tuple是不可修改的!雖然這樣很蠢纽匙,但嘗試一下务蝠,證實(shí)了tuple確實(shí)是不這樣子可以修改的。
tuple的基本操作:
1????cmp(tuple1, tuple2)
比較兩個(gè)元組元素哄辣。
2????len(tuple)
計(jì)算元組元素個(gè)數(shù)请梢。
3????max(tuple)
返回元組中元素最大值赠尾。
4????min(tuple)
返回元組中元素最小值力穗。
5????tuple(seq)
將列表轉(zhuǎn)換為元組。
剛才的常規(guī)操作好像征服不了tuple气嫁,現(xiàn)在關(guān)鍵的來了当窗,來定義一個(gè)花樣元組
tupleB =? ('this','is',['girl','boy'])
先看下這個(gè)tupleB 的內(nèi)存地址
然后我們執(zhí)行一個(gè)神奇操作:
tupleB[2].append('emmmmm')
成功了!
雖說不管方法好不好寸宵,但是我們貌似成功了崖面。我們?cè)倏聪聝?nèi)存地址
所以總結(jié)來看從定義的角度來說元組是不可變的元咙,因?yàn)樵M中的對(duì)象不能被刪除或被新對(duì)象所替代。
但是另一種意義上說然而在另一種意義上巫员,元組是可變的庶香,因?yàn)樗鼈兊闹悼梢员桓淖儭?/p>