# 二維串列操作整理:新增、修改、刪除
# 假設我們有這個二維串列:
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 🔹【一】新增
# ✅ 新增一整列(加在最後)
matrix.append([10, 11, 12])
# # 結果:matrix 有 4 列了
# ✅ 新增一列在指定位置
matrix.insert(1, [100, 200, 300])
# 插入成第2列(原本的第2列變第3列)
# ✅ 新增一個元素在某一列
matrix[0].append(99)
# 第1列變成 [1, 2, 3, 99]
# 🔹【二】修改
# ✅ 修改某個值(用雙重索引)
matrix[1][2] = 99 # 第2列第3個改成 99
# [4, 5, 6] → [4, 5, 99]
# 🔹【三】刪除
# ✅ 刪除某列
del matrix[0] # 刪掉第1列
# ✅ 刪除某個元素(某一列的某個)
del matrix[1][0] # 刪掉第2列第1個元素
# ✅ 使用 .pop() 拿掉某列或某格
matrix.pop() # 刪掉最後一列
matrix[0].pop(1) # 刪掉第1列第2個元素
# ✅ 使用 .remove() 移除某列裡的某個值
# matrix[2].remove(9) # 找出 9 並刪除(只能刪第一次出現的)
# 💡 附加功能補充
len(matrix) # ➜ 看幾列
len(matrix[0]) # ➜ 看第1列有幾個元素
# 可以用巢狀迴圈列出所有元素:
for row in matrix:
for item in row:
print(item, end=" ")
# 這段程式的技巧常用在把一串線性資料「切成表格」的情境,非常實用!
範例1:
data = list(range(9)) # [0~8]
print(data)
fruit = [data[i:i+3] for i in range(0, 9, i_row)]
# print(fruit)
# 這會建立一個一維串列,內容是從 0 到 8(總共 9 個數字):
data = [0, 1, 2, 3, 4, 5, 6, 7, 8]
# 第二步:用切片分段
fruit = [data[i:i+3] for i in range(0, 9, 3)]
# 這句話的精髓在:
# • range(0, 9, 3) ➜ 會產生 i = 0, 3, 6
# • data[i:i+3] ➜ 就是把 data 每 3 個一段地切出來
# 🧠 data[i:i+3] 實際執行順序:
# i 切片 data[i:i+3] 結果
# 0 data[0:3] [0, 1, 2]
# 3 data[3:6] [3, 4, 5]
# 6 data[6:9] [6, 7, 8]
# 🔄 最後 fruit 會是:
# [[0, 1, 2],
# [3, 4, 5],
# [6, 7, 8]]
# 🔔 小提醒:切片語法 list[a:b]
# 表示從索引 a(含)取到索引 b(不含)
# list[2:5] ➜ 取第 2、3、4 項
範例2:輸入一串字片再以,拆出元素到以List放置row中,將row新增至fruit中成為新的rows
row=[]
fruit=[]
for i in range(2):
row=list(str(input(" Key in number 3=>")).split(","))
fruit.append(row)
print(fruit)