【问题标题】:How do I reverse tuples in a list of tuples? [duplicate]如何反转元组列表中的元组? [复制]
【发布时间】:2017-12-31 22:23:09
【问题描述】:

注意;这是一个自我问答。请看下面我的回答。

给定一个元组列表:

l = [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]

我想找到最快和最简单的方法来反转x 中的每个元组,以便我得到:

[('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)]

【问题讨论】:

标签: python list tuples


【解决方案1】:
l2 = [t[::-1] for t in l]

使用标准的负步切片 t[::-1] 来获取元组的反转,并使用列表推导来获取每个元组的反转。

【讨论】:

  • 它需要转换为 tuple 才能获得您期望的结果,但这并不重要。
  • @Jean-FrançoisFabre 看看这个问题的反对票数。我今天坐在 450 代表,我不会从中获得任何东西。说真的,问问题基本上是在自取其辱。
  • 你得到了代表你自己的答案。而且我不同意你对自己的脚开枪(对于元数据来说可能是真的......):stackoverflow.com/questions/42223125/…
【解决方案2】:

这其实很简单,有几种方法,最简单的是列表推导。要反转 2 元组,只需将它们解包并交换:

[(y, x) for x, y in l]
# [('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)]

要反转 n 元组,您可以使用元组切片 ([::-1]) 进行反向切片:

[x[::-1] for x in l]
# [('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)]

【讨论】:

  • 您是在发布问题后的一分钟内写下您自己问题的答案吗?
  • @PhilippeOger:可以选择将答案与问题一起发布。 (此外,自我回答的问题也可以。)
  • 谁能告诉我那是什么进出?
  • @Vicrobot erm,什么进出*天真地吹口哨*
  • @coldspeed 是解释器的简单输入输出吗?还是python的任何语法?
【解决方案3】:

最简单的方法...

l=[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]
l=[tuple(reversed(t)) for t in l]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 2021-02-22
    • 2012-04-29
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    相关资源
    最近更新 更多