python元組
元組(英文名 tuple),和列表非常的相似,它也是由一系列元素按順序進行排列而成的容器。
不同的是,元組是不可變的,而列表是可變的。
1. 創建元組
創建元組有三種方法
第一種方法:直接使用 圓括號 將所有的元素進行包圍。這有別于創建列表時使用的是中括號:[]
>>> atuple = (1,2,3,4)
>>> atuple
(1, 2, 3, 4)
第二種方法:有時候,創建元組時,圓括號可有可無的。
>>> btuple = 1,2,3,4
>>> btuple
(1, 2, 3, 4)
第三種方法:使用元組推導式,由于元組是不可變的,所以生成一個生成器對象。這一種對于新手來說可能會比較難以理解,我會放在后面專門進行講解,這里先作了解,新手可直接跳過。
>>> ctuple = (i for i in range(1,6))
>>> ctuple
at 0x10a288f90>
上面三種方法介紹完畢~
你以為就這么簡單?
當你在創建只有一個元素的元組時,你有可能會這樣子創建
>>> ctuple = (1)
>>> type(ctuple)
>>> ctuple
1
>>>
卻發現,創建出來的并不是 tuple,而是一個 int 對象。
此時千萬要記住,當你創建只包含一個元素的元組時,要在第一個元素后面加一個逗號
>>> ctuple = (1,)
>>> type(ctuple)
>>> ctuple
(1,)
>>>
>>> dtuple = 1,
>>> type(dtuple)
>>> dtuple
(1,)
另外,創建空元組可以這樣
>>> a = tuple() # 第一種方法
>>> a
()
>>> type(a)
>>> b = () # 第二種方法
>>> b
()
>>> type(b)
2. 增刪改查
最前面我們說過,元組是不可變的。因此,你想對元組進行修改的行為都是不被允許的。
吶,看一下示例,查看元素可以,但是修改元素和刪除元素都報錯了。
>>> 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
新增元素呢?當然同樣也是不支持的,這里不再演示。
3. 元組與列表的轉換
雖然元組可能看起來與列表很像,但它們通常是在不同的場景被使用,并且有著不同的用途。
元組是 immutable (不可變的),其序列通常包含不同種類的元素,并且通過解包或者索引來訪問(如果是 namedtuples
的話甚至還可以通過屬性訪問)。
列表是 mutable (可變的),并且列表中的元素一般是同種類型的,并且通過迭代訪問。
那有辦法可以實現二者的轉換嗎?
當然有,而且非常簡單。
將元組轉成列表
>>> atuple = (1,2,3,4)
>>> type(atuple)
>>>
>>>
>>> list(atuple)
[1, 2, 3, 4]
將列表轉成元組
>>> alist = [1,2,3,4]
>>> type(alist)
>>>
>>>
>>> tuple(alist)
(1, 2, 3, 4)
審核編輯:符乾江
-
容器
+關注
關注
0文章
494瀏覽量
22045 -
python
+關注
關注
56文章
4782瀏覽量
84465
發布評論請先 登錄
相關推薦
評論