元組和列表區別

2021-08-22 13:29:23 字數 1940 閱讀 3192

元組各元素用逗號分隔

>>> y=123,456,789

>>> y[1]

456

可用圓括號把個元素括起來,也可以不用

>>> y=(123,456,789)

>>> y

(123, 456, 789)

>>> y[1]

456

元組元素不能改變

>>> y=(123,456,789)

>>> y

(123, 456, 789)

>>> y[1]

456

元組可以在初始化階段進行巢狀

陣列用方括號括起來,各元素逗號分隔

>>> l=[123,456,789]

>>> l[1]

456

各元素可以改變

>>> l[1]=852

>>> l[1]

852

可以巢狀進元組

>>> l[1]=y

>>> print(l)

[123, (123, 456, 789), 789]

可以巢狀進列表

>>> l2=[753,951,852]

>>> l[1]=l2

>>> print(l)

[123, [753, 951, 852], 789]

甚至可以自己無限巢狀

>>> l[1]=l

>>> print(l)

[123, [...], 789]

可以對列表或者元組中的某個元素檢索,或者檢索多個

>>> l[1][1]

951>>> l[1][0:2]

[753, 951]

但不能對其中某個元素單獨檢索

>>> l[1][1][1]

traceback (most recent call last):

file "

", line 1, in

l[1][1][1]

typeerror: 'int' object is not subscriptable

>>> l[0][1]

traceback (most recent call last):

file "

", line 1, in

l[0][1]

typeerror: 'int' object is not subscriptable

估計是因為元素是int型

驗證:

>>> type

(l[0])

嘗試更換列表元素為str型

之後重複上述操作

>>> l[0]=str(123)

>>> type(l[0])

>>> l[0][0]

'1'

成功

在元組初始化階段巢狀進乙個列表,那麼列表性質會被改變嗎?

嘗試一下:

>>> l

['123', [753, 951, 852], 789]

>>> y2=(123,456,l)

>>> y2

(123, 456, ['123', [753, 951, 852], 789])

>>> y2[2][2]=987

>>> y2

(123, 456, ['123', [753, 951, 852], 987])

答案是不會,元組裡的列表正常運作…

如果需要某些數值不會改變,某些數值需要改變

元組和列表的互相巢狀可以解決問題

元組 列表和nametuple的區別

import collections person collections.namedtuple person name age gender print type of person type person 建立物件 bob person name bob age 30,gender male u...

列表,元組和字典的區別

列表 list 型別相同的元素,可以改變元素的值,即可進行增刪改查操作。用中括號表示 num1,num2,num3 元組 tuple 和列表功能相似,但不能改變其元素的值,即不可以進行增刪改的操作,只能執行查詢操作。用小括號表示 num1,num2,num3 字典 infor 型別不同的元素,由鍵值...

python元組和列表的區別

python元組和python列表資料類似,底層都是線性表。唯一不同的是,python元組賦值後所儲存的資料不能被程式修改,可以將元組看作是只能讀取資料不能修改資料的列表。1 元組宣告與賦值 宣告乙個元組並賦值的語法與列表相同,不同之處是元組使用小括號,列表使用方括號,元素之間也是用英文逗號分隔。需...