这是我的矩阵:
b = [[(1, 0.044), (2, 0.042)], [(4, 0.18), (6, 0.023)], [(4, 0.03), (5,
0.023)]]
我想让它成为
b = [[(6, 0.044), (7, 0.042)], [(9, 0.18), (11, 0.023)], [(9, 0.03), (10,
0.023)]]
要为元组中的第一个值添加n,我尝试过:
for n in b:
for ee,ww in n:
ee == ee + 2903
它不起作用。 我应该如何保持对原始矩阵b的更改?
答案 0 :(得分:3)
组是不可变的。您可以改用列表理解:
res = [[(i+5, j) for i, j in tup] for tup in b]
[[(6, 0.044), (7, 0.042)], [(9, 0.18), (11, 0.023)], [(9, 0.03), (10, 0.023)]]
答案 1 :(得分:2)
您不能修改元组,它们在Python中是不可变的。但是,您可以将现有的元组替换为其他元组。
b = [[(1, 0.044), (2, 0.042)], [(4, 0.18), (6, 0.023)], [(4, 0.03), (5, 0.023)]]
for n in b:
for i, (ee, ww) in enumerate(n):
n[i] = (ee + 2903, ww)
print(b)
输出:
[[(2904, 0.044), (2905, 0.042)], [(2907, 0.18), (2909, 0.023)], [(2907, 0.03), (2908, 0.023)]]