Python 串列(或陣列?)結構

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

注意:Python程式語言沒有內建的陣列型別(Arrays),請使用串列List。
因此,先來認識什麼是串列。下圖為 Lists 的示意圖:
  

這是什麼意思呢?請繼續看下圖

以及下圖

Python字串範例程式碼:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
CHI = "我會成為程式設計高手"
ENG = "Programmer"

cL = len(CHI)

idx = 0
while(idx < cL):
    print("CHI[{0}] = {1}".format(idx, CHI[idx]), end="\t")
    print("ENG[{0}] = {1}".format(idx, ENG[idx]))
    idx = idx + 1

# 程式碼中的 print 用法請參考底下網址:
# https://docs.python.org/3/library/stdtypes.html#str.format

Python字串範例程式碼輸出結果:

由以上結果,可以知道Python將字串當成字元串列(陣列)來對待。嚴格說,Python 3 似乎沒有字元的型別,因為從下圖就看得出來(本篇是用Python 3.8.0 Windows 64bit):

但Python串列內可以儲存的資料型別可不是只有字串喔!!!請看下圖:

請把串列先想成有很多格子的容器,每個格子都有自己的編號(又稱索引值),但此容器有個限制條件:每一個格子只能放一樣東西。所以上圖中,第 0 格放了什麼?第 3 格放了什麼?第 9 格放了什麼?OK,了解此概念後,來看一下 Python串列的語法:[expression, ... ]。先這樣子解讀「把東西放在中括號[]內,用 , 逗號(是英文的逗號)來區隔每一個東西。」所以上圖就可以寫成:
myTreasure = ['dog', 'cat', 'penguin', 'sun', 'mouse', 'tree', 'rose', 'diamond', 'snake', 'chair']

此例子的每一個格子放的都是字串型態,那我們換個例子:

奇數格放的是前面偶數格內東西的目前已存在多少年了(用整數型別),所以程式碼可以寫成:
myTreasure = ['dog', 4, 'penguin', 20, 'mouse', 3, 'rose', 1, 'snake', 13]

檢查一下型別:
1
2
3
4
5
>>> myTreasure = ['dog', 4, 'penguin', 20, 'mouse', 3, 'rose', 1, 'snake', 13]
>>> type(myTreasure[1])
<class 'int'>
>>> type(myTreasure[0])
<class 'str'>

myTreasure 串列放了不一樣的資料型別,有字串<class 'str'> 與整數<class 'int'>。接下來請看下圖:

將一個串列放進列一個串列的格子裡?!這可行嗎?試試就知道:
1
2
3
4
>>> myTreasure2 = ['dog', 4, 'penguin', 20, 'mouse', 3, 'rose', 1, 'snake', 13]
>>> myTreasure1 = ['cat', 'sun', myTreasure2, 'tree', 'diamond', 'chair']
>>> type(myTreasure1[2])
<class 'list'>

看見了嗎?myTreasure1 的第 2 格放的東西的資料型別是串列<class 'list'>。此時請把串列的每一格當成是哆啦A夢的百寶袋,因為 Python 串列的每一格就像百寶袋一樣,雖然一格只能放一樣東西,但此東西是可以是已經裝好東西的一個容器
透過圖示的方式,讀者您有沒有比較了解 Python List(串列)一點呢?

沒有留言: