2014-03-25 60 views
0

如何循环遍历元组列表中的所有元素到空列表中?压扁元组列表

例如:

tup_Before = [(69592, 69582), (69582, 69518), (69518, 69532), (69532, 69525)] 

tup_After = [69592, 69582, 69582, 69518, 69518, 69532, 69532, 69525] 
+0

一个简单的reduce:'list(reduce(lambda x,y:x + y,tup_Before))'(lambda可以替换为'operator .__ add__'以提高可读性) – njzk2

回答

1

列表理解:

tup_after = [v for t in tup_Before for v in t] 

,或者使用itertools.chain.from_iterable()

from itertools import chain 
tup_after = list(chain.from_iterable(tup_Before)) 

演示:

>>> tup_Before = [(69592, 69582), (69582, 69518), (69518, 69532), (69532, 69525)] 
>>> [v for t in tup_Before for v in t] 
[69592, 69582, 69582, 69518, 69518, 69532, 69532, 69525] 
>>> from itertools import chain 
>>> list(chain.from_iterable(tup_Before)) 
[69592, 69582, 69582, 69518, 69518, 69532, 69532, 69525] 
0

还可以,至少明确的答案:

[l for l in l for l in l] 

其中l是您可以尝试使用itertools.chain()和拆包与*列表名称

0

import itertools 

new_tup = list(itertools.chain(*tup_before)) 

演示:

>>> print new_tup 
[69592, 69582, 69582, 69518, 69518, 69532, 69532, 69525]