2

我有一个清单:

[(160, 177), (162, 169), (163, 169), (166, 173), (166, 176), (166, 177), (169, 176), (169, 177)]

我想要这个列表的倒数,所以它变成:

[(177, 160), (169, 162), (169, 163), (173, 166), (176, 166), (177, 166), (176, 169), (177, 169)]

我认为你可以做类似list1[:-1]或类似的事情。

4

3 回答 3

6

在我看来,明确地反转这些对更干净:

[(snd, fst) for fst, snd in thelist]
于 2013-04-25T18:32:45.210 回答
4
a=[(160, 177), (162, 169), (163, 169), (166, 173), (166, 176), (166, 177), (169, 176), (169, 177)]
b=[e[::-1] for e in a]
print b

此 Bunk 中的可运行代码 - http://codebunk.com/bunk#-It1THfMsVDWUQMq8eRT

于 2013-04-25T18:33:31.387 回答
1

您也可以使用map并且在这种情况下reversed更喜欢基于列表理解的解决方案来执行此操作,因为与版本 中的 2 相比,它只需要一个循环map

In [24]: lis=[(160, 177), (162, 169), (163, 169), (166, 173), (166, 176), (166, 177), (169, 176), (169, 177)]

In [26]: map(tuple,map(reversed,lis))  #use itertools.imap for large lists
Out[26]: 
[(177, 160),
 (169, 162),
 (169, 163),
 (173, 166),
 (176, 166),
 (177, 166),
 (176, 169),
 (177, 169)]
于 2013-04-25T18:37:09.793 回答