我有一个很长的整数列表my_list
,以及索引集上的等价关系~
。我需要通过(在伪代码中)
new_list
new_list[i] = sum over all j with j~i of my_list[j]
由于这是一个很长的列表,为了节省时间,我想做以下事情。首先,将索引I
的集合分解为等价类I/~
,然后为每个等价类C
写
for i in C:
new_list[i] = C_sum
C_sum += my_list[i]
希望每个i
我可以将new_list[i]
定义为POINT到变量C_sum
,然后当我在for循环中修改C_sum
时,{{ 1}}仍会指向new_list[i]
现在会更大。但这并没有奏效。我认为a)列出了对对象的存储引用,并且b)+ =命令修改了现有值,而不是将变量重新绑定到新值。我哪里出错了,有没有办法可以完成我想要的东西 - 即在一个循环内的单个等价类上定义C_sum
?