我們知道元組tuple是 Immutable (不可修改)的,而數(shù)組List是可變的,而且元組有的功能它都有,而且功能更多,應(yīng)用更廣,那為什么還要保留元組呢?
1.安全共享
假設(shè)你有幾個(gè)關(guān)鍵詞比如:CAR, AIRPLANE, BOAT. 如果它是數(shù)組,要在多個(gè)對象之間進(jìn)行共享,數(shù)組無法避免它在共享的時(shí)候被無意地更改,如果說這三個(gè)關(guān)鍵詞直接和數(shù)據(jù)庫中某個(gè)字段做映射,這種更改則非常危險(xiǎn),小則導(dǎo)致垃圾數(shù)據(jù)的產(chǎn)生,大則導(dǎo)致某些功能出現(xiàn)缺陷。
元組的好處之一就在于這里,一旦三個(gè)關(guān)鍵詞被設(shè)定為元組,則再也無法更改。非常適合用于固定關(guān)鍵詞在對象之間的共享。
2.性能優(yōu)勢
我們可以做一些性能測試:
創(chuàng)建
>>>import timeit
>>>print(timeit.timeit('["CAR", "AIRPLANE", "BOAT"]'))
0.0508033999999995
>>>print(timeit.timeit('("CAR", "AIRPLANE", "BOAT")'))
0.013855500000001797
可以看到,元組的創(chuàng)建速度僅是數(shù)組的四分之一。
空間
>>> a_tuple =("CAR","AIRPLANE","BOAT")
>>> b_list =["CAR","AIRPLANE","BOAT"]
>>>from sys import getsizeof
>>> getsizeof(a_tuple)
72
>>> getsizeof(b_list)
88
可以看到,元組比數(shù)組少占用一些空間。
3.作為函數(shù)返回值
其實(shí)Python的函數(shù)多返回值就是用tuple實(shí)現(xiàn)的。我們知道tuple有兩種定義方式,一種是不帶括號的,一種是帶括號的:
my_tuple ="CAR","AIRPLANE","BOAT"
my_tuple2 =("CAR","AIRPLANE","BOAT")
print(type(my_tuple))#
print(type(my_tuple2))#
而函數(shù)使用多返回值的時(shí)候是用逗號分隔開的,這是上述的元組第一種創(chuàng)建形式,因此,函數(shù)多返回值實(shí)際上返回的是一個(gè)元組。
-
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3812瀏覽量
64442 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4332瀏覽量
62677 -
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84739 -
數(shù)組
+關(guān)注
關(guān)注
1文章
417瀏覽量
25961
發(fā)布評論請先 登錄
相關(guān)推薦
Python的列表和元組兩種數(shù)據(jù)結(jié)構(gòu)區(qū)別差異分析
![<b class='flag-5'>Python</b>的列表和<b class='flag-5'>元組</b>兩種數(shù)據(jù)結(jié)構(gòu)區(qū)別差異分析](https://file.elecfans.com/web1/M00/C8/51/pIYBAF9t96aAJA8PAAASQJD_BD0252.png)
無線地磁相對于地磁傳感線圈的優(yōu)勢分析
SimpleWiFi相對于常見的UARTWiFi具有哪些優(yōu)勢?
python元組
使用RFO_LP輸出相對于RFO_HP的優(yōu)勢是什么嗎?
PLC相對于繼電器線路的優(yōu)勢
3GPP R4相對于R99的優(yōu)勢
桁架機(jī)器人相對于人工的優(yōu)勢
FPGA相對于CPU和GPU而言有著比較明顯的優(yōu)勢
數(shù)字電源相對于模擬電源有哪些優(yōu)勢
訪問Python元組中的元素
獨(dú)立BAW振蕩器相對于石英晶體振蕩器的優(yōu)勢
![獨(dú)立BAW振蕩器<b class='flag-5'>相對于</b>石英晶體振蕩器的<b class='flag-5'>優(yōu)勢</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
獨(dú)立BAW振蕩器-相對于石英振蕩器的優(yōu)勢
![獨(dú)立BAW振蕩器-<b class='flag-5'>相對于</b>石英振蕩器的<b class='flag-5'>優(yōu)勢</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論