列表和元組是Python中最常用的兩種數(shù)據(jù)結(jié)構(gòu),字典是第三種。 相同點(diǎn):
- 都是序列
- 都可以存儲(chǔ)任何數(shù)據(jù)類(lèi)型
- 可以通過(guò)索引訪(fǎng)問(wèn)
語(yǔ)法差異
使用方括號(hào)[]創(chuàng)建列表,而使用括號(hào)()創(chuàng)建元組。 請(qǐng)看以下示例:
Python經(jīng)典面試題:列表和元組有什么異同?
是否可變
列表是可變的,而元組是不可變的,這標(biāo)志著兩者之間的關(guān)鍵差異。
我們可以修改列表的值,但是不修改元組的值。
由于列表是可變的,我們不能將列表用作字典中的key。 但可以使用元組作為字典key。
Python經(jīng)典面試題:列表和元組有什么異同?
重用與拷貝
元組無(wú)法復(fù)制。 原因是元組是不可變的。 如果運(yùn)行tuple(tuple_name)將返回自己。
Python經(jīng)典面試題:列表和元組有什么異同?
大小差異
Python將低開(kāi)銷(xiāo)的較大的塊分配給元組,因?yàn)樗鼈兪遣豢勺兊摹?對(duì)于列表則分配小內(nèi)存塊。 與列表相比,元組的內(nèi)存更小。 當(dāng)你擁有大量元素時(shí),元組比列表快。列表的長(zhǎng)度是可變的。
Python經(jīng)典面試題:列表和元組有什么異同?
同構(gòu)與異構(gòu)
習(xí)慣上元組多用于用于存儲(chǔ)異構(gòu)元素,異構(gòu)元素即不同數(shù)據(jù)類(lèi)型的元素,比如(ip,port)。 另一方面,列表用于存儲(chǔ)異構(gòu)元素,這些元素屬于相同類(lèi)型的元素,比如[int1,in2,in3]。