0

配列[(126,150),(124,154),(123,145),(123,149)](数値のサンプルです。配列が大きすぎてすべてを表示できません)があり、これを使用imshowして結果を行列にプロットしました。私が欲しいのは、配列の逆を見つけて、[(150,126),(154,124),(145,123),(149,123)]別のことをすることimshowです。

配列を反転して、やりたいことを実現するにはどうすればよいですか?

4

3 に答える 3

3
>>> 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)]
>>>
于 2013-03-10T12:09:23.433 に答える
3

イテレータを気にしない場合:

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の方法が長いリストの場合に最も効率的であることがわかりました。

于 2013-03-10T12:10:42.267 に答える
1
array = [(126,150),(124,154),(123,145),(123,149)]
inversed = [(item[1],item[0]) for item in array]
于 2013-03-10T12:09:37.767 に答える