Python的元组被设计成不可变的影响
實(shí)際上元組是跟列表非常相近的另一種容器類型,元組和列表看起來不同的一點(diǎn)是元組用的是圓括號而列表用的是方括號。而功能上,元組和列表相比有一個(gè)很重要的區(qū)別,元組是一種不可變類型。正是因?yàn)檫@個(gè)原因元組能做一些列表不能做的事情……用做一個(gè)字典的Key。另外當(dāng)處理一組對象時(shí),這個(gè)組默認(rèn)就是元組類型
不可變性給元組帶來了什么影響:
在3個(gè)標(biāo)準(zhǔn)不可變類型里面—–數(shù)字、字符串、元組——元組是受影響最大的,一個(gè)數(shù)據(jù)類型是不可變的,簡單來講,就意味著一旦一個(gè)對象被定義了,它的值就不能再被更新,除非重新創(chuàng)建一個(gè)新的對象。對數(shù)字和字符串影響不是很大,因?yàn)樗鼈兪菢?biāo)量類型,當(dāng)它們代表的值改變時(shí),這種結(jié)果是有意義的,是按照你所想要的方式進(jìn)行訪問的。而對于元組,事情就不是這樣了。
因?yàn)樵M是容器對象,很多時(shí)候你想改變的只是這個(gè)容器中的一個(gè)或者多個(gè)元素。不幸的是這是不可能的,切片操作符不能用作左值進(jìn)行賦值。這和字符串沒什么不同,切片操作只能用于只讀的操作。
不可變并不是壞事,比如我們把數(shù)據(jù)傳給一個(gè)不了解的API時(shí),可以確保我們的數(shù)據(jù)不會被修改。同樣地,如果我們操作一個(gè)從函數(shù)返回的元組,可以通過內(nèi)建List()函數(shù)把它轉(zhuǎn)換成一個(gè)列表。
總結(jié)
以上是生活随笔為你收集整理的Python的元组被设计成不可变的影响的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搜素算法(基础)--DFS/BFS算法(
- 下一篇: 云监控 Ganglia 安装步骤 (含p