Warm tip: This article is reproduced from serverfault.com, please click

其他-在python中的列表内交换元组/列表中的值?

(其他 - Swap values in a tuple/list inside a list in python?)

发布于 2012-11-14 18:19:18

我有一个像这样的元组列表:

[('foo','bar'),('foo1','bar1'),('foofoo','barbar')]

python中最快的方法是什么(在非常低的cpu/ram机器上运行)来交换这样的值......

[('bar','foo'),('bar1','foo1'),('barbar','foofoo')]

我目前正在使用:

for x in mylist:
    self.my_new_list.append(((x[1]),(x[0])))

有没有更好或更快的方法???

Questioner
subixonfire
Viewed
0
2017-05-23 20:25:27

你可以使用 map:

map (lambda t: (t[1], t[0]), mylist)

或列表理解:

[(t[1], t[0]) for t in mylist]

列表理解是首选方法,并且在需要lambda时,它比map快得多,但是请注意,列表理解具有严格的评估,即,如果担心内存消耗,请在绑定到变量后立即对其进行评估。发电机代替:

g = ((t[1], t[0]) for t in mylist)
#call when you need a value
g.next()

这里有更多细节:Python List Comprehension Vs。 map