Python 中元組和列表有什麼不同和相似之處?


列表和元組都被稱為 Python 的序列資料型別。兩種型別的物件都是用逗號分隔的項的集合,但並不一定屬於同一種類型。

相似之處

兩種型別的物件都可以進行連線、重複、索引和切片

>>> #list operations
>>> L1=[1,2,3]
>>> L2=[4,5,6]
>>> #concatenation
>>> L3=L1+L2
>>> L3
[1, 2, 3, 4, 5, 6]
>>> #repetition
>>> L1*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> #indexing
>>> L3[4]
5
>>> #slicing
>>> L3[2:4]
[3, 4]


>>> #tuple operations
>>> T1=(1,2,3)
>>> T2=(4,5,6)
>>> #concatenation
>>> T3=T1+T2
>>> T3
(1, 2, 3, 4, 5, 6)
>>> #repetition
>>> T1*3
(1, 2, 3, 1, 2, 3, 1, 2, 3)
>>> #indexing
>>> T3[4]
5
>>> #slicing
>>> T3[2:4]
(3, 4)

以下內建函式對於兩種型別都是通用的

len() − 返回序列中的元素數量

>>> L1=[45,32,16,72,24]
>>> len(L1)
5
>>> T1=(45,32,16,72,24)
>>> len(T3)

max() − 返回值最大的元素。

>>> max(L1)
72
>>> max(T1)
72

min() − 返回值最小的元素。

>>> max(T1)
72
>>> min(L1)
16
>>> min(T1)
16

不同之處

列表物件是可變的。因此,可以向列表中新增、更新或刪除一項。

>>> L1=[45,32,16,72,24]
>>> L1.append(56)
>>> L1
[45, 32, 16, 72, 24, 56]
>>> L1.insert(4,10) #insert 10 at 4th index
>>> L1
[45, 32, 16, 72, 10, 24, 56]
>>> L1.remove(16)
>>> L1
[45, 32, 72, 10, 24, 56]
>>> L1[2]=100 #update
>>> L1
[45, 32, 100, 10, 24, 56]

元組是不可變物件。任何嘗試修改它的操作都會導致 AttributeError

T1.append(56)
AttributeError: 'tuple' object has no attribute 'append'
>>> T1.remove(16)
AttributeError: 'tuple' object has no attribute 'remove'
>>> T1[2]=100
TypeError: 'tuple' object does not support item assignment


更新日期:2020 年 2 月 20 日

818 次瀏覽

開啟你的 職業生涯

透過完成課程獲取認證

開始
廣告