python元組
元組(英文名 tuple),和列表非常的相似,它也是由一系列元素按順序進(jìn)行排列而成的容器。
不同的是,元組是不可變的,而列表是可變的。
1. 創(chuàng)建元組
創(chuàng)建元組有三種方法
第一種方法:直接使用 圓括號(hào) 將所有的元素進(jìn)行包圍。這有別于創(chuàng)建列表時(shí)使用的是中括號(hào):[]
>>> atuple = (1,2,3,4)
>>> atuple
(1, 2, 3, 4)
第二種方法:有時(shí)候,創(chuàng)建元組時(shí),圓括號(hào)可有可無(wú)的。
>>> btuple = 1,2,3,4
>>> btuple
(1, 2, 3, 4)
第三種方法:使用元組推導(dǎo)式,由于元組是不可變的,所以生成一個(gè)生成器對(duì)象。這一種對(duì)于新手來(lái)說(shuō)可能會(huì)比較難以理解,我會(huì)放在后面專門(mén)進(jìn)行講解,這里先作了解,新手可直接跳過(guò)。
>>> ctuple = (i for i in range(1,6))
>>> ctuple
at 0x10a288f90>
上面三種方法介紹完畢~
你以為就這么簡(jiǎn)單?
當(dāng)你在創(chuàng)建只有一個(gè)元素的元組時(shí),你有可能會(huì)這樣子創(chuàng)建
>>> ctuple = (1)
>>> type(ctuple)
>>> ctuple
1
>>>
卻發(fā)現(xiàn),創(chuàng)建出來(lái)的并不是 tuple,而是一個(gè) int 對(duì)象。
此時(shí)千萬(wàn)要記住,當(dāng)你創(chuàng)建只包含一個(gè)元素的元組時(shí),要在第一個(gè)元素后面加一個(gè)逗號(hào)
>>> ctuple = (1,)
>>> type(ctuple)
>>> ctuple
(1,)
>>>
>>> dtuple = 1,
>>> type(dtuple)
>>> dtuple
(1,)
另外,創(chuàng)建空元組可以這樣
>>> a = tuple() # 第一種方法
>>> a
()
>>> type(a)
>>> b = () # 第二種方法
>>> b
()
>>> type(b)
2. 增刪改查
最前面我們說(shuō)過(guò),元組是不可變的。因此,你想對(duì)元組進(jìn)行修改的行為都是不被允許的。
吶,看一下示例,查看元素可以,但是修改元素和刪除元素都報(bào)錯(cuò)了。
>>> atuple = (1,2,3,4)
>>> atuple[0] # 查看元素
1
>>> atuple[0] = 0
Traceback (most recent call last):
File "", line 1, in
TypeError: 'tuple' object does not support item assignment
>>>
>>> del atuple[0]
Traceback (most recent call last):
File "", line 1, in
TypeError: 'tuple' object doesn't support item deletion
新增元素呢?當(dāng)然同樣也是不支持的,這里不再演示。
3. 元組與列表的轉(zhuǎn)換
雖然元組可能看起來(lái)與列表很像,但它們通常是在不同的場(chǎng)景被使用,并且有著不同的用途。
元組是 immutable (不可變的),其序列通常包含不同種類的元素,并且通過(guò)解包或者索引來(lái)訪問(wèn)(如果是 namedtuples 的話甚至還可以通過(guò)屬性訪問(wèn))。
列表是 mutable (可變的),并且列表中的元素一般是同種類型的,并且通過(guò)迭代訪問(wèn)。
那有辦法可以實(shí)現(xiàn)二者的轉(zhuǎn)換嗎?
當(dāng)然有,而且非常簡(jiǎn)單。
將元組轉(zhuǎn)成列表
>>> atuple = (1,2,3,4)
>>> type(atuple)
>>>
>>>
>>> list(atuple)
[1, 2, 3, 4]
將列表轉(zhuǎn)成元組
>>> alist = [1,2,3,4]
>>> type(alist)
>>>
>>>
>>> tuple(alist)
(1, 2, 3, 4)
審核編輯:符乾江
-
容器
+關(guān)注
關(guān)注
0文章
536瀏覽量
23033 -
python
+關(guān)注
關(guān)注
58文章
4889瀏覽量
90330
發(fā)布評(píng)論請(qǐng)先 登錄
使用PYTHON進(jìn)行的跨平臺(tái)仿真
[VirtualLab] 使用Python運(yùn)行VirtualLab Fusion光學(xué)仿真
[VirtualLab] 使用Python進(jìn)行跨平臺(tái)參數(shù)掃描
如何在 VisionFive 上使用 Python 包?
Python運(yùn)行本地Web服務(wù)并實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)
python元組的詳細(xì)介紹
評(píng)論