[] 或 list() 建立[] 為 False
內容會談到
[index1:index2:間隔] 表示
[m:n]:切片範圍 m 到 n-1,有頭無尾
n-m,不用再補 1[m:m+n] 表從 m 開始,切出 n 個
a = [1, 2, 3, 4, 5]
a[2:]
a[:-1]
a[::2]
a[::-1]
# [3, 4, 5]
# [1, 2, 3, 4]
# [1, 3, 5]
# [5, 4, 3, 2, 1]
a[2:] = "test"
a[2:] = ["test"]
# [1, 2, 't', 'e', 's', 't']
# [1, 2, 'test']
append(元素):附加元素到 list 的最後extend(元素):將 list 拆開附加到 list 的最後insert(位置, 元素):插入指定元素的位置,原位置往後,若超過則為最後一個del:刪除指定(範圍)的值remove(值):刪除找到的第一個值reverse():反轉a = [1, 2, 3, 4, 5]
a.append(10)
a.insert(10, "test")
del a[-1]
a.remove(10)
a.reverse()
# [1, 2, 3, 4, 5, 10]
# [1, 2, 3, 4, 5, 10, 'test']
# [1, 2, 3, 4, 5, 10]
# [1, 2, 3, 4, 5]
# [5, 4, 3, 2, 1]
a = [1, 2, 3, 4, 5]
b = [6, 7]
a.append(b)
a.extend(b)
# [1, 2, 3, 4, 5, [6, 7]]
# [1, 2, 3, 4, 5, 6, 7]
sort()、sorted()list.sort():屬於 list 的方法,其他種不能使用sorted(list):屬於函式,會回傳一個新 list,不會改動原本的,其他種可以使用a = [3, 2, 1, 4, 5]
b = sorted(a)
print(b)
# [1, 2, 3, 4, 5]
print(a)
# [3, 2, 1, 4, 5]
a.sort()
print(a)
# [1, 2, 3, 4, 5]
[] 內還可以放 [],如 [[], [], []]
li[位置1][位置2]
a = [[0, 1, 2], [10, 11, 12], [20, 21, 22]]
a[1]
# [10, 11, 12]
a[1][2]
# 12
b = a:= 是賦值,屬於引用(記憶體位置相同),a 改變,b 會跟著改變b = a[:]
b = a.copy()
b = copy.copy(a),需 import copy
b = copy.deepcopy(a),需 import copy
id(變數) 檢查記憶體位置# 賦值
a = [[0, 1], [0, 2]]
b = a
a.append([0, 3])
print(a)
print(b)
# [[0, 1], [0, 2], [0, 3]]
# [[0, 1], [0, 2], [0, 3]]
# 淺拷貝
import copy
a = [[0, 1], [0, 2]]
b = copy.copy(a)
# b = a.copy()
a.append([0, 3])
print(a)
print(b)
# 表層不受影響
# [[0, 1], [0, 2], [0, 3]]
# [[0, 1], [0, 2]]
a[0][0] = 1
print(a)
print(b)
# 深層受影響
# [[1, 1], [0, 2], [0, 3]]
# [[1, 1], [0, 2]]
# 深拷貝
import copy
a = [[0, 1], [0, 2]]
b = copy.deepcopy(a)
a.append([0, 3])
a[0][0] = 1
print(a)
print(b)
# 獨立不受影響
# [[1, 1], [0, 2], [0, 3]]
# [[0, 1], [0, 2]]
小補充
deepcopy()
deepcopy()
value in []
value not in []
max()、min():找出最大或最小值來看看跟 list 相似的 tuple 以及另一種 set 吧!