「可變」的tuple
前面我們看到了tuple一旦建立就不能修改。現在,我們來看乙個「可變」的tuple:
>>> t = ('a', 'b', ['a', 'b'])
注意到 t 有 3 個元素:'a','b'和乙個list:['a', 'b']。list作為乙個整體是tuple的第3個元素。list物件可以通過 t[2] 拿到:
>>> l = t[2]
然後,我們把list的兩個元素改一改:
>>> l[0] = 'x'
>>> l[1] = 'y'
再看看tuple的內容:
>>> t
('a', 'b', ['x', 'y'])
不是說tuple一旦定義後就不可變了嗎?怎麼現在又變了?
別急,我們先看看定義的時候tuple包含的3個元素:
當我們把list的元素'a'和'b'修改為'x'和'y'後,tuple變為:
表面上看,tuple的元素確實變了,但其實變的不是 tuple 的元素,而是list的元素。
tuple一開始指向的list並沒有改成別的list,所以,tuple所謂的「不變」是說,tuple的每個元素,指向永遠不變。即指向'a',就不能改成指向'b',指向乙個list,就不能改成指向其他物件,但指向的這個list本身是可變的!
理解了「指向不變」後,要建立乙個內容也不變的tuple怎麼做?那就必須保證tuple的每乙個元素本身也不能變。
python 列表 元組
列表非常適合利用順序和位置定義某乙個元素,尤其是當元素的順序或內容經常發生改變的時候。與字串不同,列表中元素的值是可以修改的。我們可以直接對列表中進行新增新元素 刪除元素 或覆蓋已有的元素。不同元素 與列表類似,元組也是由任意型別元素組成的序列。與列表不同的是,元組是不可改變,這意味著一旦元組被定義...
python列表 元組
列表是python中最基本的資料結構。列表中的每個元素都分配乙個數字 它的位置,或索引,第乙個索引是0,第二個索引是1,依此類推。列表是最常用的python資料型別,它可以作為乙個方括號內的逗號分隔值出現。列表的資料項不需要具有相同的型別 建立乙個列表,只要把逗號分隔的不同的資料項使用方括號括起來即...
Python 列表,元組
一 簡介 列表 list 是python以及其他語言中最常用到的資料結構之一。python使用使用中括號 來解析列表。列表是可變的 mutable 可以改變列表的內容。二 基本的列表操作 列表可以使用所有適用於序列的標準操作,例如索引 分片 連線和乘法。本文介紹一些可以改變列表的方法。1.list ...