4 回答

TA貢獻1788條經驗 獲得超4個贊
您可以使用列表推導:
lst = [[1,1,1], [1,1,1], [1,1,1], [1,2,3], [1,2,3], [1,2,3]]
new_lst = [[k+1 if j == i%3 else k for j, k in enumerate(a)] for i, a in enumerate(lst)]
輸出:
[[2, 1, 1], [1, 2, 1], [1, 1, 2], [2, 2, 3], [1, 3, 3], [1, 2, 4]]

TA貢獻1853條經驗 獲得超6個贊
你想要的是使用zip:
lst = [[1,1,2], [1,2,1], [1,1,1]]
for i,j in zip(range(len(lst)), (0,1,2)):
lst[i][j] += 1
lst
#[[2, 1, 2], [1, 3, 1], [1, 1, 2]]

TA貢獻1810條經驗 獲得超4個贊
你可以用一個簡單的for循環來做到這一點,無需使用zip或enumerate
for i in range(len(lst)):
lst[i][i] += 1
print(lst) # [[2, 1, 2], [1, 3, 1], [1, 1, 2]]

TA貢獻1848條經驗 獲得超2個贊
這是一種使用enumerate.
前任:
lst = [[1,1,2], [1,2,1], [1,1,1]]
for idx, v in enumerate(lst):
v[idx] += 1
print(lst)
輸出:
[[2, 1, 2], [1, 3, 1], [1, 1, 2]]
添加回答
舉報