我有一个像这样的元组列表:
[('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])))
有没有更好或更快的方法???
你可以使用 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()