Python -从列表的特定位置减去一个数字



我有一个元组列表和一个整数数组。我要减去一个特定的元素从数组中根据给定的元组。元组的第一个元素表示要从数组中减去的数字的索引,第二个元素表示要减去的实际数字。我尝试了以下方法,但索引越界:

li = [(0, 1), (1, 1), (1, 2), (2, 1), (2, 2), (2, 3)]
array = [1,2,3] 
for idx,i in enumerate(li):
print(array)
array[idx] = array[idx] - li[idx][1]
array

输出为:

[1, 2, 3]
[0, 2, 3]
[0, 1, 3]
[0, 1, 1]
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-25-603d874cf0cc> in <module>
3 for idx,i in enumerate(li):
4     print(array)
----> 5     array[idx] = array[idx] - li[idx][1]
6 array
IndexError: list index out of range

预期输出,每次迭代后,数组的元素应该减去它最终应该(0,0,0)。如有任何帮助,不胜感激。

你不应该使用enumerate,因为每个元组已经包含索引作为第一个元素。

li = [(0, 1), (1, 1), (1, 1), (2, 1), (2, 2), (2, 3)]
array = [1,2,3] 
for idx, sub in li:
print(array)
array[idx] -= sub

最新更新