如何在元组列表中反转元组?

时间:2017-07-25 20:12:21

标签: python list tuples

  

请注意;这是一个自我Q& A。请参阅下面的答案。

给出一个元组列表:

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

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

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

3 个答案:

答案 0 :(得分:8)

l2 = [t[::-1] for t in l]

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

答案 1 :(得分:7)

实际上这很简单,并且有一些方法,最简单的是列表理解。要反转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)]

答案 2 :(得分:1)

最简单的方法......

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