python中列表長度可變嗎?以下為大家介紹一下python中可變和不可變的類型:
#可變、不可變
可變/不可變類型,指的是:內存id不變,type也不變的前提下,value是否是可變的。
int()和str()都是不可變類型
列表、字典是可變類型
對於可變對象,例如list,對list進行操作,list內部的內容是會變化的,例如:
>>> a = ['c', 'b', 'a']>>> a.sort()>>> a
['a', 'b', 'c']
相關推薦:《python影片教學》
而對於不可變對象,例如str,對str進行操作呢:
>>> a = 'abc'>>> a.replace('a', 'A')'Abc'>> ;> a'abc'
雖然字串有個replace()方法,也確實變出了'Abc',但變數a最後仍是'abc',該怎麼理解呢?
我們先把程式碼改成下面這樣:
>>> a = 'abc'>>> b = a.replace('a', 'A ')>>> b'Abc'>>> a'abc'
要始終牢記的是,a是變量,而'abc'才是字串對象!有些時候,我們常說,物件a的內容是'abc',但其實是指,a本身是一個變量,它指向的物件的內容才是'abc':
當我們呼叫a.replace('a', 'A')時,實際上呼叫方法replace是作用在字串物件'abc'上的,而這個方法雖然名字叫replace,但卻沒有改變字串'abc'的內容。相反,replace方法創建了一個新字串'Abc'並返回,如果我們用變數b指向該新字串,就容易理解了,變數a仍指向原有的字串'abc',但變數b卻指向新字串'Abc'了:
所以,對於不變物件來說,呼叫物件本身的任意方法,也不會改變該物件本身的內容。相反,這些方法會創建新的物件並返回,這樣,就保證了不可變物件本身永遠是不可變的。
以上是python中列表長度可變嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!