0

试图重建包含坐标的列表列表。

我得到的是

sel = ((0, 0), (0, 1), (1, 1), (1, 0))
sel = [(1 - v[1]) for v in sel]

这是我想要对每组中的第二个坐标执行的操作,但我的问题是它作为值列表返回,而不是第二个值已更改的列表列表。

我这样做是因为我使用的 2 个不同应用程序的坐标系不同。一个 0 位于路轴的底部,而另一个我试图转换的 0 从 y 轴的顶部开始。

4

1 回答 1

1

现在,列表理解中的每个元素都是(1-v[1]),这是您希望对第二个值发生的情况。如果您希望每个元素成为一个元组,其中元组中的第一项与以前相同,但第二项已更改,您可以这样做:

>>> sel = ((0, 0), (0, 1), (1, 1), (1, 0))
>>> sel = [(v[0], 1 - v[1]) for v in sel]
>>> sel
[(0, 1), (0, 0), (1, 0), (1, 1)]

您还可以避免使用索引,这有时可以使代码更清晰(这里大致相同):

>>> sel = [(x, 1-y) for x,y in sel]
>>> sel
[(0, 1), (0, 0), (1, 0), (1, 1)]
于 2013-03-23T21:53:59.963 回答