1、都是python中最常用的資料結構
2、都是序列
3、都可以儲存任何資料型別
4、可以通過索引訪問
列表建立使用方括號,而元組建立使用括號()。
>>
>l=
['a'
,'b'
]>>
>t=
('a'
,'b'
)>>
>
print
(type
(l))
<
class
'list'
>
>>
>
print
(type
(t))
<
class
'tuple'
>
列表(list)是動態的,長度並不是固定的,在**中可以隨意的增加,刪除或者修改列表中的元素
元組(tuple)的長度是固定的,一旦生成,無法對其進行增加,刪除或修改操作,因此,若需對元組進行增加操作,可新建立乙個元組,進行連線。
>>
>l=
['a'
,'b'
]>>
'c')
>>
>
print
(l)[
'a',
'b',
'c']
>>
>t=
('a'
,'b'
)>>
'c')
traceback (most recent call last)
: file ""
, line 1,in
attributeerror:
'tuple'
>>
>c=
('c',)
>>
>
print
(t+c)
('a'
,'b'
,'c'
)
列表是可變的,而元組是不可變的,這是兩者之間的關鍵差異。
我們可以修改列表的值,但是不修改元組的值。
>>
>l[1]
='c'
>>
>
print
(l)[
'a',
'c']
>>
>t[1]
='c'
traceback (most recent call last)
: file ""
, line 1,in
typeerror:
'tuple'
object does not support item assignment
由於列表是可變的,我們不能將列表用作字典中的key。 但可以使用元組作為字典key。
在元組初始化階段巢狀進乙個列表,那麼列表性質不會被改變。元組裡的列表正常運作,如果需要某些數值不會改變,某些數值需要改變 ,元組和列表的互相巢狀可以解決問題。
由於元組是不可變的,因此無法進行複製。 如果執行tuple(tuple_name)將返回自己。
>>
>copy_l=
list
(l)>>
>
print
(l is copy_l)
false
>>
>copy_t=
tuple
(t)>>
>
print
(t is copy_t)
true
>>
>
print
(copy_t)
('a'
,'b'
)>>
>
print
(copy_l)
['a'
,'c'
]
python將低開銷的較大的塊分配給元組,因為它們是不可變的。 對於列表則分配小記憶體塊。 與列表相比,元組的記憶體更小。 當你擁有大量元素時,元組比列表快。列表的長度是可變的。
>>
>l=
['a'
,'b'
]>>
>t=
('a'
,'b'
)>>
>
print
(l.__sizeof__())
56>>
>
print
(t.__sizeof__())
40
習慣上元組多用於用於儲存異構元素,異構元素即不同資料型別的元素,比如(ip,port)。 另一方面,列表用於儲存同構元素,這些元素屬於相同型別的元素,比如[int1,in2,in3]。
元組通常由不同的資料,而列表是相同型別的資料佇列。元組表示的是結構,而列表表示的是順序。
Python中元組與列表的區別
元組是不可變的,而列表是可變的。可變不可變則體現在了如下 可變型別 列表,字典 增加修改,都不會使id發生變化 不可變型別 數字 字串 元組 即如果賦予新值,他的id會發生變化 元組通常由不同的資料,而列表是相同型別的資料佇列。元組表示的是結構,而列表表示的是順序。舉個例子來講 當你想激勵棋盤上的乙...
Python中元組,列表,字典的區別
list是處理一組有序專案的資料結構,即你可以在乙個列表中儲存乙個序列的專案。列表中的專案。列表中的專案應該包括在方括號中,這樣python就知道你是在指明乙個列表。一旦你建立了乙個列表,你就可以新增,刪除,或者是搜尋列表中的專案。由於你可以增加或刪除專案,我們說列表是可變的資料型別,即這種型別是可...
Python中元組,列表,字典的區別
python中,有3種內建的資料結構 列表 元組和字典。1.列表 list是處理一組有序專案的資料結構,即你可以在乙個列表中儲存乙個序列的專案。列表中的專案。列表中的專案應該包括 在方括號中,這樣python就知道你是在指明乙個列表。一旦你建立了乙個列表,你就可以新增,刪除,或者是搜尋列表中的專案。...