List & Tuple

      在〈List & Tuple〉中尚無留言

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重新指向, 所以不是值的變更

tuple_1

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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *