在Python中,陣列大致分為3種形式:
元組【tuple】:不可變動陣列(無法簡單刪改內容)
I. 陣列共通的概念
A. 何謂陣列
陣列其實就是由一串相連在一起的變數所構成
B. 為何需要陣列
之前我們所學的資料儲存方式都是利用變數
每當我們需要一個變數我們都得宣告一次
但倘若哪天我們有上千上萬筆資料空間需求時呢?
除了要大量宣告變數外,變數命名也是非常令人頭疼的事
(例如:a1 = 0, a2 = -2, .... , a100 = 10) 是不是很容易命名到手軟呢~
這時候若能利用陣列來儲存,那就能避免大量變數命名的痛苦了
C. 陣列的宣告與賦值
字串
Copy s = "我是字串" # 字串的表示方式為:" " 或' '
串列
空串列
被賦值的串列
Copy li = list (( 'USA' , 'DE' , 'TW' )) # ['USA', 'DE', 'TW']
Copy li = [ "USA" , "DE" , "TW" ] # ['USA', 'DE', 'TW']
Copy li = [ - 1 ] * 100 # 創造一個100格,裡面都是-1的陣列
Copy li = [ 0 for i in range ( 100 ) ] # 創造一個100格,裡面都是0的陣列
Copy li = [ int (i) for i in range ( 100 ) ] # 將陣列內容值都改為整數
Copy li = list ( map ( int , li) # 將陣列內容值都改為整數
讀取一行多筆資料進串列中
Copy li = input ( '請輸入六個大特透號碼:' ). split () # 15 20 49 1 7 33
print (li) # ['15', '20', '49', '1', '7', '33']
將字串改為串列
Copy s = '最沒資格抱怨人生的,就是允許自己一直迷惘,卻不試著做點什麼的人'
li = list (s)
print (li) # ['最', '沒', '資', '格', '抱', '怨', '人', '生', '的', ',', '就', '是', '允', '許', '自', '己', '一', '直', '迷', '惘', ',', '卻', '不', '試', '著', '做', '點', '什', '麼', '的', '人']
元組
Copy tu = ( '我' , '是' , '元' , '組' ) # 元組的表示方式
Copy tu = ( 'AE' , ) # 如果Tuple中僅有一個值的情況,最後面要有個逗號,否則會宣告成字串
D. 取陣列中的值
陣列的存取方式都是透過[]
Copy s = "make me great again" # 字串
li = [ 'make' , 'me' , 'great' , 'again' ] # 串列
tu = ( 'make' , 'me' , 'great' , 'again' ) # 元組
print (s[ 2 ], s[ 4 ]) # k
print (li[ 2 ], li[ 0 ]) # great make
print (tu[ 2 ], tu[ 1 ]) # great me
E. 計算陣列長度
使用len()
Copy s = "有拜有保庇" # 字串
li = [ '有' , '拜' , '有' , '保' , '庇' ] # 串列
tu = ( '有' , '拜' , '有' , '保' , '庇' ) # 元組
print ( len (s)) # 5
print ( len (li)) # 5
print ( len (tu)) # 5
注意! 空格、特殊符號都算一種字元唷! 同時也占據一格空間
F. 陣列切片(Slicing)
字串切片
用:
做切片
Copy s = "Angels Like You"
# 從編號2號的格子到編號4號的格子
print (s[ 2 : 5 ]) # gel
# 從編號0號的格子到編號14號的格子,取樣間隔為2
print (s[ 0 : 15 : 2 ]) # Agl ieYu
# 從編號10號的格子到編號1號的格子,取樣間隔為-2
print (s[ 10 : 0 : - 2 ]) # ei lg
Copy s = "F**kin’ Perfect"
#如果右邊不放的話就代表到最末一個編號
print (s[ 2 :]) # *kin’ Perfect
#如果左邊不放的話就代表從編號 0 開始
print (s[: 5 ]) # F**ki
串列切片
Copy contry = [ 'CA' , 'US' , 'TW' , 'DE' , 'AE' , 'IL' ]
print (contry[:]) # ['CA', 'US', 'TW', 'DE', 'AE', 'IL']
print (contry[ - 5 : - 1 ]) # ['US', 'TW', 'DE', 'AE']
元組切片
Copy contry = ( 'CA' , 'US' , 'TW' , 'DE' , 'AE' , 'IL' )
print (contry[:]) # ('CA', 'US', 'TW', 'DE', 'AE', 'IL')
print (contry[ - 5 : - 1 ]) # ('US', 'TW', 'DE', 'AE')
【例題】
下方是某首歌曲中的一小段歌詞
別逼一個最愛你的人 即興表演
什麼時候我們開始 沒有了底線
順著別人的謊言 被動就不顯得可憐
請擷取歌詞中的最後一句
Copy s = '''別逼一個最愛你的人 即興表演
什麼時候我們開始 沒有了底線
順著別人的謊言 被動就不顯得可憐'''
print (s[ 30 : 47 ]) # 順著別人的謊言 被動就不顯得可憐
Copy s = '''
別逼一個最愛你的人 即興表演
什麼時候我們開始 沒有了底線
順著別人的謊言 被動就不顯得可憐'''
print (s[ 31 : 48 ]) # 順著別人的謊言 被動就不顯得可憐
G. 更改陣列中的值
字串
更改字串中特定位置的值
Copy a = "電視裡我唱得用力,撕心裂肺誰又會在意"
a = a [: 4 ] + '罵' + a [ 5 :]
print (a) # 電視裡我罵得用力,撕心裂肺誰又會在意
將字串裡的所有某子字串全改為另個子字串
使用replace()
Copy a = '不要等對的人走進你的生命裡;要努力成為走進別人生命裡那個對的人'
print (a. replace ( '生命' , 'XX' )) # 不要等對的人走進你的XX裡;要努力成為走進別人XX裡那個對的人
錯誤方式
注意! python中,字串不得直接用 a[] = " "
的方式更改!
Copy a = "AIDS"
a [ 0 ] = 'B' # TypeError: 'str' object does not support item assignment
print (a)
串列
Copy li = [ 'USA' , 'DE' , 'TW' ]
li [ 1 ] = 'CN'
print (li) # ['USA', 'CN', 'TW']
元組
無法直接改動元組內容的值
Copy tu = ( 'AE' , 'CN' , 'FR' )
tu [ 1 ] = 'GB' # TypeError: 'tuple' object does not support item assignment
del thistuple [ 1 ] # TypeError: 'tuple' object doesn't support item deletiondel thistuple[1] # TypeError: 'tuple' object doesn't support item deletion
間接改動元組內容的值(先轉為list
變動完後再轉回tuple
)
Copy tu = ( 'AE' , 'CN' , 'FR' )
y = list (tu) # 先轉為list
y [ 1 ] = "panda"
tu = tuple (y) # 再轉回tuple
print (tu) # ('AE', 'panda', 'FR')
H. 陣列中的子陣列
使用index()
字串
Copy s = 'Those who do nothing but allow themselves to dwell in despair have no right to complain about life.'
print (s. index ( 'dwell' )) # 45 (找出串列中第一個相符合的子字串所在的索引值)
print (s. index ( 'to' , 45 )) # 76 (找出索引值45之後第一個相符合的子字串所在的索引值)
print (s. index ( 'gorgeous' )) # ValueError: substring not found
串列
Copy fruits = [ 'orange' , 'apple' , 'pear' , 'banana' , 'kiwi' , 'apple' , 'banana' ]
print (fruits. index ( 'banana' )) # 3 (找出串列中第一個相符合的值所在的索引值)
print (fruits. index ( 'banana' , 4 )) # 6 (找出索引值4之後第一個相符合的值所在的索引值)
print (fruits. index ( 'guava' )) # ValueError: 'guava' is not in list
元組
Copy fruits = ( 'orange' , 'apple' , 'pear' , 'banana' , 'kiwi' , 'apple' , 'banana' )
print (fruits. index ( 'banana' )) # 3
print (fruits. index ( 'banana' , 4 )) # 6
print (fruits. index ( 'guava' )) # ValueError: tuple.index(x): x not in tuple
使用find()
串列與元組均無法使用find()
,而find()
與index()
最大差異在於:當找不到希望的子陣列時,會回傳-1
而非ValueError
Copy s = 'Those who do nothing but allow themselves to dwell in despair have no right to complain about life.'
print (s. find ( 'dwell' )) # 45 (找出串列中第一個相符合的子字串所在的索引值)
print (s. find ( 'to' , 45 )) # 76 (找出索引值45之後第一個相符合的子字串所在的索引值)
print (s. find ( 'gorgeous' )) # -1
判斷某子陣列是否有在某陣列中
使用 in
或 not in
字串
Copy txt = "A beautiful woman wears a smile on her face, carries confidence on her shoulder, keeps courage in her heart, and holds destiny in her hand."
conclusion1 = "shoulder" in txt # 判斷 shoulder 有無在 txt 字串中
conclusion2 = "beautiful" not in txt # 判斷 beautiful 有無在 txt 字串中
print (conclusion1, conclusion2) # True False
串列
Copy thislist = [ 'USA' , 'DE' , 'TW' ]
if 'TW' in thislist :
print ( 'Yes' ) # Yes
if 'CN' in thislist :
print ( 'Yes' ) # (不會印出)
元組
Copy thislist = ( 'USA' , 'DE' , 'TW' )
if 'TW' in thislist :
print ( 'Yes' ) # Yes
if 'CN' in thislist :
print ( 'Yes' ) # (不會印出)
I. 陣列搭配迴圈
字串
Copy s = "世界が終るまでは"
for x in range ( len (s)):
print (s[x], end = " " ) # 世 界 が 終 る ま で は
Copy s = "世界が終るまでは"
for x in s : # x變數會從字串陣列中的第一格數值開始到最後一格
print (x, end = " " ) # 世 界 が 終 る ま で は
串列
Copy li = [ 'USA' , 'DE' , 'TW' ]
for x in range ( len (li)):
print (li[x] , end = ' ' ) # USA DE TW
Copy li = [ 'USA' , 'DE' , 'TW' ]
for x in li :
print (x , end = ' ' ) # USA DE TW
Copy li = [ 1 , 2 , 3 , 4 , 5 ]
l = [element - 1 for element in li] # 將串列內所有值都-1
print (l) # [0, 1, 2, 3, 4]
元組
Copy tu = ( 'USA' , 'DE' , 'TW' )
for x in tu :
print (x , end = ' ' ) # USA DE TW
Copy tu = ( 1 , 2 , 3 , 4 , 5 )
t = [element - 1 for element in tu]
print (t) # [0, 1, 2, 3, 4]
J. 陣列變字串
使用join()
字串每隔間插入新字串
Copy s = "有拜有保庇"
print ( '--' . join (s)) # 有--拜--有--保--庇
串列每隔間插入新字串
Copy li = [ '有' , '拜' , '有' , '保' , '庇' ]
print ( '' . join (li)) # 有拜有保庇
Copy li = [ '有' , '拜' , '有' , '保' , '庇' ]
print ( '--' . join (li)) # 有--拜--有--保--庇
元組每隔間插入新字串
Copy li = ( '有' , '拜' , '有' , '保' , '庇' )
print ( '--' . join (li)) # 有--拜--有--保--庇
K. 陣列的合併
字串
使用+
Copy s1 = '人之初'
s2 = '性本善'
print (s1 + s2) # 人之初性本善
s1 += s2
print (s1) # 人之初性本善
串列
使用+
Copy li_1 = [ 'UK' , 'DE' , 'AE' ]
li_2 = [ 3.14 , - 9 ]
print (li_1 + li_2) # ['UK', 'DE', 'AE', 3.14, -9]
li_1 += li_2
print (li_1) # ['UK', 'DE', 'AE', 3.14, -9]
使用extend()
Copy li_1 = [ 'UK' , 'DE' , 'AE' ]
li_2 = [ 3.14 , - 9 ]
li_1 . extend (li_2)
print (li_1) # ['UK', 'DE', 'AE', 3.14, -9]
元組
使用+
Copy li_1 = ( 'UK' , 'DE' , 'AE' )
li_2 = ( 3.14 , - 9 )
print (li_1 + li_2) # ('UK', 'DE', 'AE', 3.14, -9)
li_1 += li_2
print (li_1) # ('UK', 'DE', 'AE', 3.14, -9)
L. 計算陣列中某物件出現次數
使用count()
字串
Copy s = "有拜有保庇"
print (s. count ( '有' )) # 2
串列
Copy contry = [ 'CA' , 'US' , 'CA' , 'DE' , 'AE' , 'IL' , 'CA' ]
print (contry. count ( 'CA' )) # 3
元組
Copy contry = ( 'CA' , 'US' , 'CA' , 'DE' , 'AE' , 'IL' , 'CA' )
print (contry. count ( 'CA' )) # 3
M. 加物件進陣列中
字串
Copy s = "有拜有保庇"
s += '嗎?'
print (s) # 有拜有保庇嗎?
Copy s = "有拜有保庇"
s = s [: 2 ] + '媽祖' + s [ 2 :]
print (s) # 有拜媽祖有保庇
串列
使用append()
加物件至串列最末一個位置
Copy li = [ 'USA' , 'DE' , 'TW' ]
li . append ( 'AE' )
print (li) # ['USA', 'DE', 'TW', 'AE']
使用insert()
加物件至串列中特定位置
Copy li = [ 'USA' , 'DE' , 'TW' ]
li . insert ( 1 , 18 ) # 將18插入索引值1的格子中
print (li) # ['USA', 18, 'DE', 'TW']
利用+=
方式
Copy contry = [ 'AU' , 'CH' , 'EE' ]
contry += 'CS'
print (contry) # ['AU', 'CH', 'EE', 'C', 'S']
country += [ 'CS' ]
print (contry) # ['AU', 'CH', 'EE', 'C', 'S', 'CS']
在串列中加入子串列(形成多維串列)
Copy thislist = [ 'UK' , 'DE' , 'AE' ]
thislist += [[ 'IN' ]]
print (thislist) # ['UK', 'DE', 'AE', ['IN']] (二維串列)
元組
元組為不可變動陣列,不得隨意增加物件
Copy contry = ( 'AU' , 'CH' , 'EE' )
contry += 'CS' # TypeError: can only concatenate tuple (not "str") to tuple
print (contry)
N. 移除陣列或其內容
字串
直接使用+
重組字串
Copy s = "有拜有保庇"
s = s [: 1 ] + s [ 2 :]
print (s) # 有有保庇
使用replace()
Copy a = '有拜有保庇'
print (a. replace ( '有' , '' )) # 拜保庇
Copy # 若只想取代其中幾個字可以加上參數
a = '有拜有保庇'
print (a. replace ( '有' , '' , 1 )) # 拜有保庇
串列
使用remove()
【移除串列中指定物件】
Copy thislist = [ 'apple' , 'banana' , 'cherry' ]
thislist . remove ( 'banana' )
print (thislist) # ['apple', 'cherry']
使用pop()
【移除串列中最後一個物件 】
Copy thislist = [ 'apple' , 'banana' , 'cherry' ]
thislist . pop ()
print (thislist) # ['apple', 'banana']
使用pop()
【移除串列中指定索引值的物件 】
Copy thislist = [ 'apple' , 'banana' , 'cherry' ]
thislist . pop ( 1 )
print (thislist) # ['apple', 'cherry']
使用del
【移除串列中指定索引值的物件 】
Copy thislist = [ 'apple' , 'banana' , 'cherry' ]
del thislist [ 0 ]
print (thislist) # ['banana', 'cherry']
使用del
【移除整個串列 】
Copy thislist = [ 'apple' , 'banana' , 'cherry' ]
del thislist
print (thislist) # NameError: name 'thislist' is not defined
使用clear()
【清空整個串列 】
Copy thislist = [ 'apple' , 'banana' , 'cherry' ]
thislist . clear ()
print (thislist) # []
使用del
【清空整個串列 】
Copy thislist = [ 'apple' , 'banana' , 'cherry' ]
del thislist [:]
print (thislist) # []
元組
元組不得直接刪除陣列中內容
O. 陣列中最大值、最小值、總和
在電腦中,任何字元都有個專屬的編碼,例如:ASCII、Unicode、UTF-8 ... 等
字串
Copy alpha = 'ABCDEFG'
print ( max (alpha)) # G
print ( min (alpha)) # A
串列
Copy num_list = [ 65 , 20 , 35 , 100 , 90 , 36 ]
print ( max (num_list)) # 100
print ( min (num_list)) # 20
print ( sum (num_list)) # 346
Copy contry = [ 'CA' , 'US' , 'TW' , 'DE' , 'AE' , 'IL' ]
print ( max (contry)) # US
print ( min (contry)) # AE
下方為補充
Copy contry = [ 'CA' , 'USA' , 'TW' , 'DE' , 'AE' , 'I' ]
print ( max (contry, key = len )) # USA
print ( min (contry, key = len )) # I
元組
Copy num_list = ( 65 , 20 , 35 , 100 , 90 , 36 )
print ( max (num_list)) # 100
print ( min (num_list)) # 20
print ( sum (num_list)) # 346
Copy contry = ( 'CA' , 'US' , 'TW' , 'DE' , 'AE' , 'IL' )
print ( max (contry)) # US
print ( min (contry)) # AE
下方為補充
Copy contry = ( 'CA' , 'USA' , 'TW' , 'DE' , 'AE' , 'I' )
print ( max (contry, key = len )) # USA
print ( min (contry, key = len )) # I
II. 字串(str)專屬用法
A. 英文字母大小寫轉換
使用lower()
及upper()
Copy a = "Courage is not a proof of Strength, but an act of Persistence."
print (a. lower ()) # courage is not a proof of strength, but an act of persistence.
print (a. upper ()) # COURAGE IS NOT A PROOF OF STRENGTH, BUT AN ACT OF PERSISTENCE.
B. 字串與變數或數字串接
Copy name = "Lance"
age = 18
print ( 'the age of {} is {} ' . format (name, age)) # the age of Lance is 18
Copy name = "Lance"
age = 18
print ( f 'the age of { name } is { age } ' ) # the age of Lance is 18
print ( f 'the age of { name } is { age } ' ) # the age ofLanceis18
Copy print ( "the age of {} is {} " . format ( "Lance" , 18 )) # the age of Lance is 18
print ( f 'the age of { "Lance" } is {18} ' ) # the age of Lance is 18
也可以將要放的地方做編號(從0開始)
Copy print ( "大家好,我是 {0} ,我今年 {1} 歲,身高 {2} 公分" . format ( "皮卡丘" , 15 , 50 )) # 大家好,我是皮卡丘,我今年15歲,身高50公分
print ( "大家好,我是 {1} ,我今年 {2} 歲,身高 {0} 公分" . format ( "皮卡丘" , 15 , 50 )) # 大家好,我是15,我今年50歲,身高皮卡丘公分
C. 格式化數字
格式化數字【放在{}
中】有很多種類,在此只舉一些較常用的
.2
表示保留小數點後2位(4捨5入)
f
表示float
(小數)
x
表示用x
字元填補
>
表示填補左方(向右對齊)
d
表示decimal
(10進位數字)
5d
表示格式寬度為5個字元
#
表示用#
填補
<
表示填補右方(向左對齊)
5d
表示格式寬度為5個字元
name
表示此{}
的名稱
5後面什麼都不放代表字串格式
III. 串列 (list
)專屬用法
A. 串列複製【補充】
注意! Python中不得直接指定整串陣列到另一個,這會使得更動一個串列另一個也跟著連動
Copy thislist = [ "apple" , "banana" , "cherry" ]
li_tmp = thislist # 這種指定方式非常危險
print (li_tmp) # ['apple', 'banana', 'cherry']
thislist [ 0 ] = "WOOOW"
print (li_tmp) # ['WOOOW', 'banana', 'cherry']
方法一
Copy thislist = [ "apple" , "banana" , "cherry" ]
li_tmp = thislist . copy ()
print (li_tmp) # ['apple', 'banana', 'cherry']
thislist [ 0 ] = "WOOOW"
print (li_tmp) # ['apple', 'banana', 'cherry']
方法二
Copy thislist = [ "apple" , "banana" , "cherry" ]
li_tmp = list (thislist)
print (li_tmp) # ['apple', 'banana', 'cherry']
thislist [ 0 ] = "WOOOW"
print (li_tmp) # ['apple', 'banana', 'cherry']
深度複製【補充】
使用copy()
複製多維度的串列會遇到的問題
Copy li_1 = [ 'CA' , [ 'DE' ]]
li_2 = li_1 . copy ()
li_1 . append ( 'ZZ' ) # ['CA', ['DE'], 'ZZ'] ['CA', ['DE']]
print (li_1, li_2)
li_1 [ 1 ]. append ( 'XX' )
print (li_1, li_2) # ['CA', ['DE', 'XX'], 'ZZ'] ['CA', ['DE', 'XX']]
使用deepcopy()
可以複製多維度的串列【需要import copy】
Copy import copy # 使用deepcopy前需要引用外部函式
li_1 = [ 'CA' , [ 'DE' ]]
li_2 = li_1 . deepcopy ()
li_1 . append ( 'ZZ' )
print (li_1, li_2) # ['CA', ['DE'], 'ZZ'] ['CA', ['DE']]
li_1 [ 1 ]. append ( 'XX' )
print (li_1, li_2) # ['CA', ['DE', 'XX'], 'ZZ'] ['CA', ['DE']]
B. 排序串列中的物件
由小至大排列
Copy num_list = [ 65 , 20 , 35 , 100 , 90 , 36 ]
contry = [ 'CA' , 'US' , 'TW' , 'DE' , 'AE' , 'IL' ]
# 整形化妝方式
print ( sorted (num_list)) # [20, 35, 36, 65, 90, 100]
print ( sorted (contry)) # ['AE', 'CA', 'DE', 'IL', 'TW', 'US']
print (num_list) # [65, 20, 35, 100, 90, 36]
print (contry) # ['CA', 'US', 'TW', 'DE', 'AE', 'IL']
# 真正改變的方式
contry . sort ()
num_list . sort ()
print (num_list) # [20, 35, 36, 65, 90, 100]
print (contry) # ['AE', 'CA', 'DE', 'IL', 'TW', 'US']
由大至小排列
Copy num_list = [ 65 , 20 , 35 , 100 , 90 , 36 ]
contry = [ 'CA' , 'US' , 'TW' , 'DE' , 'AE' , 'IL' ]
# 整形化妝方式
print ( sorted (num_list, reverse = True )) # [100, 90, 65, 36, 35, 20]
print ( sorted (contry, reverse = True )) # ['US', 'TW', 'IL', 'DE', 'CA', 'AE']
print (num_list) # [65, 20, 35, 100, 90, 36]
print (contry) # ['CA', 'US', 'TW', 'DE', 'AE', 'IL']
# 真正改變的方式
contry . sort (reverse = True )
num_list . sort (reverse = True )
print (num_list) # [100, 90, 65, 36, 35, 20]
print (contry) # ['US', 'TW', 'IL', 'DE', 'CA', 'AE']
C. enumerate【補充】
enumerate()
可將串列轉為元組 型態的(數值+索引值 )
Copy drinks = [ 'coke' , 'wine' , 'coffee' ]
enu = enumerate (drinks)
print (enu) # <enumerate object at 0x0000021F15432C40>
print ( list (enu)) # [(0, 'coke'), (1, 'wine'), (2, 'coffee')]
Copy drinks = [ 'coke' , 'wine' , 'coffee' ]
for i , element in enumerate (drinks):
print (i, element, end = ' , ' ) # 0 coke , 1 wine , 2 coffee ,
for value in enumerate (drinks):
print (value, end = '' ) # (0, 'coke')(1, 'wine')(2, 'coffee')
D. 多維度串列
二維串列的表示方式
三維串列的表示方式
二維串列的創造
Copy # 創造一個10x5的2維陣列串容均為0
twoDarray = [[ 0 for i in range ( 5 ) ] for j in range ( 10 ) ]
二維串列的長度
Copy # 創造一個2x3的2維陣列
array_2D = [[ 1 , 2 , 3 ] ,
[ 4 , 5 , 6 ]]
# 印出陣列的row數
print ( len (array_2D)) # 2
# 印出陣列的column數
print ( len (array_2D[ 0 ])) # 3
二維串列的存取
Copy # 創造一個2x3的2維陣列
twoDarray = [[ 1 , 2 , 3 ] ,
[ 4 , 5 , 6 ]]
print (twoDarray[ 1 ][ 0 ]) # 4
print (twoDarray[ 0 ][ 3 ]) # IndexError: list index out of range
print (twoDarray[ 1 ][ 1 ]) # 5
多維串列的複製【補充】
使用deepcopy()
【需要import copy】
Copy import copy
myList = [[ 0 , 1 , 2 , 3 ] ,
[ 3 , 2 , 1 , 0 ] ,
[ 3 , 5 , 6 , 1 ] ,
[ 3 , 8 , 3 , 4 ]]
cList = copy . deepcopy (myList)
myList [ 0 ] [ 1 ] = 10
print (cList) # [[0, 1, 2, 3], [3, 2, 1, 0], [3, 5, 6, 1], [3, 8, 3, 4]]
print (myList) # [[0, 10, 2, 3], [3, 2, 1, 0], [3, 5, 6, 1], [3, 8, 3, 4]]
IV. 元組 (tuple)專屬用法
A. 為何需要tuple
?
有些程式是需要存取陣列中固定某格當中的值,這時若用List
來儲存可能會不小心更動到該格的數值進而影響結果,這時使用Tuple
就能夠避免這類問題發生,因為Tuple
是不可被變動的
V. 學習單
VI. 附檔
A. 提示程式碼
B. 文章
赤壁賦 出師表 三字經
壬戌之秋,七月既望,蘇子與客泛舟遊於赤壁之下。清風徐來,水波不興。舉酒
屬客,誦明月之詩,歌窈窕之章。少焉,月出於東山之上,徘徊於斗牛之間。白
露橫江,水光接天。縱一葦之所如,凌萬頃之茫然。浩浩乎如馮虛御風,而不知
其所止;飄飄乎如遺世獨立,羽化而登仙。 於是飲酒樂甚,扣舷而歌之。歌曰:
“桂棹兮蘭槳,擊空明兮溯流光。渺渺兮予懷,望美人兮天一方。”客有吹洞簫
者,倚歌而和之。其聲嗚嗚然,如怨如慕,如泣如訴;餘音嫋嫋,不絕如縷。舞
幽壑之潛蛟,泣孤舟之嫠婦。 蘇子愀然,正襟危坐,而問客曰:“何爲其然也?”
客曰:“‘月明星稀,烏鵲南飛。’此非曹孟德之詩乎?西望夏口,東望武昌,山川
相繆,鬱乎蒼蒼,此非孟德之困於周郎者乎?方其破荊州,下江陵,順流而東
也,舳艫千里,旌旗蔽空,釃酒臨江,橫槊賦詩,固一世之雄也,而今安在哉?
況吾與子漁樵於江渚之上,侶魚蝦而友麋鹿,駕一葉之扁舟,舉匏樽以相屬。寄
蜉蝣於天地,渺滄海之一粟。哀吾生之須臾,羨長 江之無窮。挾飛仙以遨遊,
抱明月而長終。知不可乎驟得,託遺響於悲風。” 蘇子曰:“客亦知夫水與月乎?
逝者如斯,而未嘗往也;盈虛者如彼,而卒莫消長也。蓋將自其變者而觀之,則
天地曾不能以一瞬;自其不變者而觀之,則物與我皆無盡也,而又何羨乎!且夫
天地之間,物各有主,苟非吾之所有,雖一毫而莫取。惟江上之清風,與山間之
明月,耳得之而爲聲,目遇之而成色,取之無禁,用之不竭。是造物者之無盡藏
也,而吾與子之所共適。”(共適 一作:共食) 客喜而笑,洗盞更酌。餚核既盡,
杯盤狼籍。相與枕藉乎舟中,不知東方之既白。
臣亮言:先帝創業未半而中道崩殂,今天下三分,益州疲弊,此誠危急存亡之秋
也。然侍衛之臣不懈於內,忠志之士忘身於外者,蓋追先帝之殊遇,欲報之於陛
下也。誠宜開張聖聽,以光先帝遺德,恢弘志士之氣,不宜妄自菲薄,引喻失
義,以塞忠諫之路也。 宮中府中,俱爲一體;陟罰臧否,不宜異同:若有作奸
犯科及爲忠善者,宜付有司論其刑賞,以昭陛下平明之理;不宜偏私,使內外異
法也。 侍中、侍郎郭攸之、費禕、董允等,此皆良實,志慮忠純,是以先帝簡
拔以遺陛下:愚以爲宮中之事,事無大小,悉以諮之,然後施行,必能裨補闕
漏,有所廣益。 將軍向寵,性行淑均,曉暢軍事,試用於昔日,先帝稱之曰
“能”,是以衆議舉寵爲督:愚以爲營中之事,悉以諮之,必能使行陣和睦,優劣
得所。 親賢臣,遠小人,此先漢所以興隆也;親小人,遠賢臣,此後漢所以傾
頹也。先帝在時,每與臣論此事,未嘗不嘆息痛恨於桓、靈也。侍中、尚書、長
史、參軍,此悉貞良死節之臣,願陛下親之、信之,則漢室之隆,可計日而待
也。 臣本布衣,躬耕於南陽,苟全性命於亂世,不求聞達於諸侯。先帝不以臣
卑鄙,猥自枉屈,三顧臣於草廬之中,諮臣以當世之事,由是感激,遂許先帝以
驅馳。後值傾覆,受任於敗軍之際,奉命於危難之間:爾來二十有一年矣。 先
帝知臣謹慎,故臨崩寄臣以大事也。主員受命以來,夙夜憂嘆,恐託付不效,以
傷先帝之明;故五月渡瀘,深入不毛。今南方已定,兵甲已足,當獎率三軍,北
定中原,庶竭駑鈍,攘除奸兇,興復漢室,還於舊都。此臣所以報先帝而忠陛下
之職分也。至於斟酌損益,進盡忠言,則攸之、禕、允之任也。 願陛下託臣以
討賊興復之效,不效,則治臣之罪,以告先帝之靈。若無興德之言,則責攸之、
禕、允等之慢,以彰其咎;陛下亦宜自謀,以諮諏善道,察納雅言,深追先帝遺
詔。臣不勝受恩感激。 今當遠離,臨表涕零,不知所言。
人之初,性本善,性相近, 習相遠 , 苟不教, 性乃遷, 教 之道, 貴以專,
昔孟母, 擇鄰處,子不學,斷機杼, 竇燕山, 有義方,教五子,名 俱揚,
養不教, 父之過,教不嚴,師之惰, 子不學, 非所宜,幼不學,老何 為,
玉不琢, 不成器,人不學, 不知義, 為人子, 方少時,親師友,習 禮 儀,
香九齡, 能溫席,孝於親, 所當執, 融四歲,能讓梨,弟於長,宜先知,
首孝弟,次見聞,知某數,識某文, 一而十,十而百,百而千,千而萬,
三才者, 天地人,三光者,日月星, 三綱者,君臣義,父子親,夫婦順,
日春夏,日秋冬, 此四時,運不窮, 曰南北,曰西東, 此四方,應 乎中,
曰水火, 木金土, 此五行, 本乎數,