从我上一个问题开始的后续工作,但又多样化,迫使我开始一个新的主题。我需要在Python龟模块中对由乌龟制作的点的坐标进行舍入,我尝试这样做的任何方式都会给我TypeError: 'Vec2D' object does not support item assignment
。
我有usedpositions: [[(-100.00,-0.00), 1], [(0.00,0.00), 2], [(100.00,0.00), 1]]
,其中每个子列表中的第0项是coords,而且,长话短说,我需要对它进行舍入。
我尝试的第一种方法是
for upsublist in usedpositions:
upsublist[0][0] = round(upsublist[0][0], 2)
upsublist[0][1] = round(upsublist[0][1], 2)
这返回了上述错误,
也是如此for upsublist in usedpositions:
zeroth = round(upsublist[0][0], 2)
first = round(upsublist[0][1], 2)
upsublist[0][0] = zeroth
upsublist[0][1] = first
所以,我只是想找到一种简洁的方法将x和y坐标四舍五入到两位小数。任何帮助赞赏。
答案 0 :(得分:2)
Vec2D
是不可变的;您可以使用包含圆角坐标的新矢量替换Vec2D
实例,但不能修改原始实例。
upsublist[0] = turtle.Vec2D(round(upsublist[0][0], 2), round(upsublist[0][1], 2))