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]]
添加回答
举报