在元组列表中反转元组

时间:2013-03-10 12:03:44

标签: python numpy matplotlib

我有一个数组[(126,150),(124,154),(123,145),(123,149)](只是一个数字样本,数组太大而无法显示所有这些数据),然后我使用imshow将结果绘制到矩阵上。我想要的是找到数组的倒数[(150,126),(154,124),(145,123),(149,123)],然后再做另一个imshow

如何反转数组以实现我想要的目标?

3 个答案:

答案 0 :(得分: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)]
>>>

答案 1 :(得分: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方法对于更长的列表最有效。

答案 2 :(得分:1)

array = [(126,150),(124,154),(123,145),(123,149)]
inversed = [(item[1],item[0]) for item in array]