[英]Python: how to revise tuples in an list?
我有一个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)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.