反转元组列表中的元组

0 投票
3 回答
1322 浏览
提问于 2025-04-17 18:34

我有一个数组 [(126,150),(124,154),(123,145),(123,149)](这只是一些数字的样本,整个数组太大了,不能全部展示)。我用 imshow 把这些结果绘制到一个矩阵上。现在我想把这个数组反转成 [(150,126),(154,124),(145,123),(149,123)],然后再用一次 imshow

我该怎么做才能把这个数组反转,达到我想要的效果呢?

3 个回答

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方法是最有效的。

3

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,尤其是当我们不太熟悉这些工具的工作原理时。

比如,有人可能在使用某个库时,发现它的某个功能没有按预期工作。这时候,他们可能会在网上寻求帮助,比如在StackOverflow上提问。提问时,他们通常会描述遇到的问题,提供一些代码示例,并说明他们尝试过的解决方法。

通过这样的方式,其他人就能更好地理解问题,并给出相应的建议或解决方案。这种互帮互助的方式在编程社区中非常常见,也很重要。

总之,遇到问题时,不要害怕寻求帮助,清晰地描述你的问题和尝试过的解决方法,通常能得到更好的回应。

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

在编程的世界里,有时候我们会遇到一些问题,像是代码运行不正常或者出现错误。这些问题可能让人感到困惑,但其实大多数时候,我们只需要仔细检查一下代码,看看哪里出了问题。

比如说,有些错误可能是因为拼写错误,或者是漏掉了某个符号。还有可能是因为使用了不正确的变量名,或者是没有按照正确的顺序来写代码。

解决这些问题的方法通常是一步一步来,先找到错误的地方,然后想办法修复它。可以通过阅读错误信息,或者在网上查找相关的解决方案来帮助自己。

记住,编程就像解谜一样,有时候需要耐心和细心,慢慢来,总能找到答案。

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

撰写回答