List
list 是一個有序的集合, 可以動態新增刪除裏面的元素
使用方式
使用變數並在 [] 中指定值即可. 將變數直接印出, 則會列印所有的值
student=["Thomas", "John", "keven"] print(student)
取得取代
如陣列一樣傳入索引編號, 即可讀取或變更裏面的值.
索引編號若超出範圍, 則會產生IndexError 錯誤.
另索引編號可以為 -1 : 取最後一個值, -2則是取最後第二個值
student[0]="Tony" print(student[0])
新增
使用 append()則會新增資料到最後一筆中
student.append("tracy")
插入
使用insert, 並指定要插入的索引, 則可以將值插入中間位置
student.insert(1, "merry")
刪除
使用pop(), 並不傳入參數, 則會將最後一個刪除. 若有傳入參數, 則會刪除參數指定位置的值
student.pop(1)
不同型態的值
Python是弱型語言嘛, 所以集合內的值, 不一定要同型態, 如下有的是字串, 有的是數字. 真是個奇葩的程式語言啊.
student=["Thomas", "John", "keven", 123]
集合中的集合
集合中, 可以是其他的集合
不過請注意, 要列印Thomas, 則必需使用 school[2][0]的方式取得
student=["Thomas", "John", "keven"] school=["校長", "Merry", student] print(school) print(school[2][0]) 結果 : ['校長', 'Merry', ['Thomas', 'John', 'keven']] Thomas
空集合
bus=[] , 此時的len(bus)則為 0
Tuple [ˈtjuːpəl]
另一種有序的集合, 叫元組(tuple). tuple和list 類似, 但tuple一旦初始化後就不能修改. 所以tuple沒有append, 也沒有insert.
有時為了安全性, 如果值不需再作改變時, 盡量使用tuple
classmates = ('Michael', 'Bob', 'Tracy')
#classmates[0]="abc" <==TypeError: 'tuple' object does not support item assignment
print(classmates)
tuple陷井1
以下的代碼, 並不是更改tuple, 而是tuple重新指向, 所以不是值的變更

t = ('Michael', 'Bob', 'Tracy')
print(t)
t=("Thomas",)
print(t)
陷井2
t=(1,2) <==二個元素
t=() <==空的元素
t=(1) <==t 為1 這個數
t(1,) <== t只有一個元素, 所以只有一個元素的話, 一定要加 “,”
可變 tuple
下述的 t[2][0], 其實並不是可變的tuple, 而是在 tuple[2]含了一個可變的list, 所以變更的是list, 而不是tuple
t = ('Michael', 'Bob', ["Thomas", "John"])
t[2][0]="Kevin"
print(t)
天干地支
此代碼於 2020 年撰寫,2024 年更新。若要查自已的日主,可到 https://myfate.herokuapp.com/ 查詢
大樂透
切片
list 可以進行切片,取得其中某一部份的資料。比如下面的 a[0:3],是取得編號為 0~3的資料,但不包含 3
import numpy as np a=['a','b','c','d','e','f'] #從索引編號 0~3 的切片,但不包含 3 print(a[0:3]) #==>['a','b','c']
為了練習,可以把字串當成 list 進行切片練習
a="abcdefghijklmnopqrstuvwxyz"
#從編號 2 到 5
print("a[2:5] :",a[2:5])
#從頭到編號 5
print("a[:5] :",a[:5])
#從頭到最後,但不包含最後
print("a[:-1] :",a[:-1])
#從尾到頭,反向列印
print("a[::-1] :",a[::-1])
#從頭到尾,每隔 2 個取一次
print("a[::2] :",a[::2])
#從編號 10 到 0 反向選取,但不包含 0
print("a[10:0:-1] :",a[10:0:-1])
結果:
a[2:5] : cde
a[:5] : abcde
a[:-1] : abcdefghijklmnopqrstuvwxy
a[::-1] : zyxwvutsrqponmlkjihgfedcba
a[::2] : acegikmoqsuwy
a[10:0:-1] : kjihgfedcb
