0

座標を含むリストのリストを再構築しようとしています。

私が得たものは

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

これは、すべてのセットの2番目の座標に必要なことを行っていますが、私の問題は、2番目の値が変更されたリストのリストではなく、値のリストとして返されることです。

私が使用している2つの異なるアプリの座標系が異なるため、これを行っています。1 つの 0 はウェイ軸の下部にあり、もう 1 つの 0 も変換しようとしている場合は、y 軸の上部から始まります。

4

1 に答える 1

1

現在、リスト内包表記の各要素は であり(1-v[1])、これが 2 番目の値に発生させたいことです。各要素をタプルにしたい場合、タプルの最初の項は以前と同じですが、2 番目の項が変更されている場合は、次のようにすることができます。

>>> 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 に答える