配列[(126,150),(124,154),(123,145),(123,149)]
(数値のサンプルです。配列が大きすぎてすべてを表示できません)があり、これを使用imshow
して結果を行列にプロットしました。私が欲しいのは、配列の逆を見つけて、[(150,126),(154,124),(145,123),(149,123)]
別のことをすることimshow
です。
配列を反転して、やりたいことを実現するにはどうすればよいですか?
配列[(126,150),(124,154),(123,145),(123,149)]
(数値のサンプルです。配列が大きすぎてすべてを表示できません)があり、これを使用imshow
して結果を行列にプロットしました。私が欲しいのは、配列の逆を見つけて、[(150,126),(154,124),(145,123),(149,123)]
別のことをすることimshow
です。
配列を反転して、やりたいことを実現するにはどうすればよいですか?
>>> arr = [(126,150),(124,154),(123,145),(123,149)]
>>> reverseArr = [x[::-1] for x in arr]
>>> reverseArr
[(150, 126), (154, 124), (145, 123), (149, 123)]
>>>
イテレータを気にしない場合:
a = [(126,150),(124,154),(123,145),(123,149)]
inverse = map(reversed, a)
または、タプルが必要な場合のいくつかのオプションは次のとおりです。
inverse = map(tuple, map(reversed, a))
inverse = map(lambda x: (x[1], x[0]), a)
inverse = zip(*reversed(zip(*a)))
いくつかの簡単なテストから、リスト内包法が短いリストの場合に最も効率的な方法であり、zipの方法が長いリストの場合に最も効率的であることがわかりました。
array = [(126,150),(124,154),(123,145),(123,149)]
inversed = [(item[1],item[0]) for item in array]