我有一个x,y元组的列表。将这些原始元组视为x和y的变化。我希望将x和y中的这些后续更改应用于上一个元组。例如,在零项之后,x增加了100,y保持不变。因此,新的第一项将是(100,100)。之后,x保持不变,y减少100。将其应用于修订的第一项将导致修订的第二项(100,0),依此类推。
xy = [(0,100), (100,0), (0,-100), (-100,0)]
这是期望的结果:
xy = [(0,100), (100,100), (100,0), (0,0)]
如何解决列表的不变性?如何循环完成此操作?
该列表本身仍然是可变的。只需用新的替换元组:
x, y = 0, 0
for i, (dx, dy) in enumerate(xy):
x += dx
y += dy
xy[i] = (x, y)
演示:
>>> xy = [(0, 100), (100, 0), (0, -100), (-100, 0)]
>>> x, y = 0, 0
>>> for i, (dx, dy) in enumerate(xy):
... x += dx
... y += dy
... xy[i] = (x, y)
...
>>> xy
[(0, 100), (100, 100), (100, 0), (0, 0)]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句