首頁 >後端開發 >Python教學 >python中列表長度可變嗎

python中列表長度可變嗎

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼原創
2019-06-19 17:55:2110873瀏覽

python中列表長度可變嗎

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':

python中列表長度可變嗎

當我們呼叫a.replace('a', 'A')時,實際上呼叫方法replace是作用在字串物件'abc'上的,而這個方法雖然名字叫replace,但卻沒有改變字串'abc'的內容。相反,replace方法創建了一個新字串'Abc'並返回,如果我們用變數b指向該新字串,就容易理解了,變數a仍指向原有的字串'abc',但變數b卻指向新字串'Abc'了:

python中列表長度可變嗎

所以,對於不變物件來說,呼叫物件本身的任意方法,也不會改變該物件本身的內容。相反,這些方法會創建新的物件並返回,這樣,就保證了不可變物件本身永遠是不可變的。

以上是python中列表長度可變嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn