串列是由一群資料排在一起形成的,其定義與使用方式非常簡單。定義時必須使用中括號,並在內容之間以逗點隔開;存取元素時則是依照順序,由 0 開始數,並且也是使用方括號存取。範例如下:

a = [9, 4, 8, 7]

print(a[0])
print(a[1])
print(a[2])
print(a[3])

透過「:」這個運算,也可以一次存取多個元素,如下:

a = [12, 34, 56, 78, 90, 123, 456, 789, 1234, 5678, 12345]

print(a[3:])    # 從 a[3] 開始取到結束
print(a[:6])    # 從頭開始取到 a[6-1]
print(a[4:7])   # a[4] 開始取到 a[7-1],或者說 a[4] 開始取 7-4 個
print(a[3:8:2]) # a[3] 開始取到 a[8-1],每 2 個取 1 個
print(a[-1])    # 倒數第一個

存取元素時,如果使用小數當作索引,或者索引值超出範圍時,會產生錯誤;但是透過「:」存取多個元素時,則會視為從某開始或結束,有看到元素則取出,因此可能會是空串列或整個串列,如下:

a = [12, 34, 56, 78, 90, 123, 456, 789, 1234, 5678]

print(a[3.0])   # 這行用小數,會產生錯誤
print(a[100])   # 這行超出範圍,會產生錯誤
print(a[-100])  # 這行超出範圍,會產生錯誤
print(a[100:])  # 這行會拿到空串列
print(a[:100])  # 這行會拿到整個串列
print(a[-100:]) # 這行會拿到整個串列

判斷 list 當中是否含有特定元素可以使用「in」,取得長度可以使用「len」;此外,如果 list 當中都是數字,還可以進行一些基本統計:

a = [12, 34, 56, 78, 90, 123, 456, 789, 1234, 5678, 12345]

print(123 in a)
print(5566 not in a)
print(len(a))

# 如果內容都是數字,可以使用以下的計算
print(min(a))
print(max(a))
print(sum(a))

修改一或多個元素的方法如下:

a = [12, 34, 56, 78, 90, 123, 456, 789, 1234, 5678, 12345]

a[0] = 'hello'
print(a)

a[5:8] = ['world'] * (8-5) # ['world'] 這個 list 重複 (8-5) 次
print(a)

a[1:4] = '!!!'
print(a)

其中可以看到,在 Python 當中,串列是可以把不同類型的資料放在一起的。

新增與刪除元素的方法如下:

a = [12, 34, 56, 78, 90, 123, 456, 789, 1234, 5678, 12345]

a.append('A')    # 加入一個元素到尾端
print(a)

a.extend(['B'])  # 把另一個 list 從尾端接上去
print(a)

a.insert(3, 'C') # 在指定的位置插入元素
print(a)

x = a.pop()      # 刪除最後一個元素,並回傳被刪除的元素
print(x, a)

x = a.pop(3)     # 刪除指定位置的元素,並回傳被刪除的元素
print(x, a)

del a[3]         # 刪除指定位置的元素,不回傳
print(a)

del a[3:5]       # 刪除指定位置的多個元素,不回傳
print(a)

串列的反轉:

a = [12, 34, 12345, 56, 78, 90, 123, 1234, 5678, 456, 789]

a.reverse()   # 反轉
print(a)

b = a[::-1]   # 也可以反轉,不過不是修改原本的串列,而是產生一個新的
print(b)