python經典面試題:列表和元組有什麼異同?

mug發表於2021-09-09

列表和元組是Python中最常用的兩種資料結構,字典是第三種。 相同點:

  • 都是序列

  • 都可以儲存任何資料型別

  • 可以透過索引訪問

圖片描述

圖片.png

語法差異

使用方括號[]建立列表,而使用括號()建立元組。 請看以下示例:

>>> l = ["", ""]>>> t = ("", "")>>> print(l)
['', '']>>> print(t)
('', '')>>> print(type(l))
<class 'list'>
>>> print(type(t))<class 'tuple'>

是否可變

列表是可變的,而元組是不可變的,這標誌著兩者之間的關鍵差異。

我們可以修改列表的值,但是不修改元組的值。

由於列表是可變的,我們不能將列表用作字典中的key。 但可以使用元組作為字典key。

>>> l[1] = "">>> l
['', '']>>> t[1] = ""Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

重用與複製

元組無法複製。 原因是元組是不可變的。 如果執行tuple(tuple_name)將返回自己。

>>> copy_t = tuple(t)>>> print(t is copy_t)True>>> copy_l = list(l)>>> print(l is copy_l)False


大小差異

Python將低開銷的較大的塊分配給元組,因為它們是不可變的。 對於列表則分配小記憶體塊。 與列表相比,元組的記憶體更小。 當你擁有大量元素時,元組比列表快。列表的長度是可變的。

>>> l = ["", ""]>>> t = ("", "")>>> print(l.__sizeof__())56>>> print(t.__sizeof__())40

同構與異構

習慣上元組多用於用於儲存異構元素,異構元素即不同資料型別的元素,比如(ip,port)。 另一方面,列表用於儲存異構元素,這些元素屬於相同型別的元素,比如[int1,in2,in3]。



作者:python作業AI畢業設計
連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/506/viewspace-2819500/,如需轉載,請註明出處,否則將追究法律責任。

相關文章