python元組
元組(英文名 tuple),和列表非常的相似,它也是由一系列元素按順序進(jìn)行排列而成的容器。
不同的是,元組是不可變的,而列表是可變的。
1. 創(chuàng)建元組
創(chuàng)建元組有三種方法
第一種方法:直接使用 圓括號 將所有的元素進(jìn)行包圍。這有別于創(chuàng)建列表時使用的是中括號:[]
>>> atuple = (1,2,3,4)
>>> atuple
(1, 2, 3, 4)
第二種方法:有時候,創(chuàng)建元組時,圓括號可有可無的。
>>> btuple = 1,2,3,4
>>> btuple
(1, 2, 3, 4)
第三種方法:使用元組推導(dǎo)式,由于元組是不可變的,所以生成一個生成器對象。這一種對于新手來說可能會比較難以理解,我會放在后面專門進(jìn)行講解,這里先作了解,新手可直接跳過。
>>> ctuple = (i for i in range(1,6))
>>> ctuple
at 0x10a288f90>
上面三種方法介紹完畢~
你以為就這么簡單?
當(dāng)你在創(chuàng)建只有一個元素的元組時,你有可能會這樣子創(chuàng)建
>>> ctuple = (1)
>>> type(ctuple)
>>> ctuple
1
>>>
卻發(fā)現(xiàn),創(chuàng)建出來的并不是 tuple,而是一個 int 對象。
此時千萬要記住,當(dāng)你創(chuàng)建只包含一個元素的元組時,要在第一個元素后面加一個逗號
>>> ctuple = (1,)
>>> type(ctuple)
>>> ctuple
(1,)
>>>
>>> dtuple = 1,
>>> type(dtuple)
>>> dtuple
(1,)
另外,創(chuàng)建空元組可以這樣
>>> a = tuple() # 第一種方法
>>> a
()
>>> type(a)
>>> b = () # 第二種方法
>>> b
()
>>> type(b)
2. 增刪改查
最前面我們說過,元組是不可變的。因此,你想對元組進(jìn)行修改的行為都是不被允許的。
吶,看一下示例,查看元素可以,但是修改元素和刪除元素都報錯了。
>>> 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)換
雖然元組可能看起來與列表很像,但它們通常是在不同的場景被使用,并且有著不同的用途。
元組是 immutable (不可變的),其序列通常包含不同種類的元素,并且通過解包或者索引來訪問(如果是 namedtuples
的話甚至還可以通過屬性訪問)。
列表是 mutable (可變的),并且列表中的元素一般是同種類型的,并且通過迭代訪問。
那有辦法可以實(shí)現(xiàn)二者的轉(zhuǎn)換嗎?
當(dāng)然有,而且非常簡單。
將元組轉(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文章
499瀏覽量
22125 -
python
+關(guān)注
關(guān)注
56文章
4807瀏覽量
85041
發(fā)布評論請先 登錄
相關(guān)推薦
誰能詳細(xì)介紹一下track-and-hold
使用Python實(shí)現(xiàn)xgboost教程
Python中dict支持多個key的方法
鴻蒙原生應(yīng)用元服務(wù)開發(fā)-倉頡基礎(chǔ)數(shù)據(jù)類型元組類型
利用Python腳本登錄到交換機(jī)并創(chuàng)建VLAN
使用Python進(jìn)行Ping測試
![使用<b class='flag-5'>Python</b>進(jìn)行Ping測試](https://file1.elecfans.com/web2/M00/02/FD/wKgaoma53G-AaVZUAABUXbtkmLo864.jpg)
使用Python批量連接華為網(wǎng)絡(luò)設(shè)備
pytorch和python的關(guān)系是什么
Python建模算法與應(yīng)用
Python在AI中的應(yīng)用實(shí)例
Python中的人工智能框架與實(shí)例
使用Python進(jìn)行自然語言處理
基于Python的地圖繪制教程
![基于<b class='flag-5'>Python</b>的地圖繪制教程](https://file1.elecfans.com/web2/M00/C0/F4/wKgZomXb72KADq8JAABAFRaefm0918.png)
ELF 1技術(shù)貼|如何將Python3.6.9移植到開發(fā)板上
![ELF 1技術(shù)貼|如何將<b class='flag-5'>Python</b>3.6.9移植到開發(fā)板上](https://file1.elecfans.com/web2/M00/C0/94/wKgZomXW5EiAf1EoAABBQv84DIc700.png)
評論