2013-03-23 54 views
0

試圖重建包含座標的列表列表。python,重建列表

我得到的是

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

這是做我想做的第二個在每一個組座標,但我的問題是,它返回的值的列表,而不是列出的清單,第二個值改變。

即時做到這一點,因爲2個不同的應用程序im座標系統是不同的。有一個0位於通道軸的底部,而另一個我也試圖轉換0,從y軸的頂部開始。

回答

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)] 
+0

感謝,我知道我忘記簡單的東西那樣。 – cmcPasserby 2013-03-23 21:58:00