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 回答