我为这个为python编写的函数感到震惊.我观察到,在较低的位置,while它会更改列表中的值,vctor即使该功能未触及该列表.我已经通过这对(10, [1,3,5,7,10]),它已将列表更改vctor为[1,3,5,8,10].对此有解释吗?
def siguiente(k,vctor):
l = len(vctor)
vctorsig = vctor
i = l-1
while i>= 0:
if vctorsig[i] <= k - l + i:
j=i
while j<=l-1:
print vctor
vctorsig[j] = vctor[i]+j-i+1
j=j+1
i = -1
else:
i = i-1
return vctorsig
Run Code Online (Sandbox Code Playgroud)
执行此操作时vctorsig = vctor,您将vctorsig引用引用的列表vctor,因此在修改它时,您将修改原始列表.
如果您希望将列表复制到那里,您可以这样做vctorsig = list(vctor).
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |