2016-10-04 54 views
1

我想找到一个简短而优雅的方式来访问嵌套列表中的所有单个元素。例如:访问嵌套列表的所有元素

lst1 = ['1', '2', '3'] 
lst2 = ['4', '5'] 

outer = [lst1, lst2] 

是否有列表理解会返回['1', '2', '3', '4', '5']

+4

'外= LST1 + lst2' –

+5

参见[制作一个平面列表列于Python列表的列表](HTTP:// stackoverflow.com/questions/952914/making-a-flat-list-out-of-list-of-lists-in-python)。我想这就是你要求的 – roganjosh

+0

你对任意嵌套列表感兴趣吗,或者只有那些嵌套到一个单一程度的人(如你的例子)?为了展平任意深度的结构,请参阅http://rightfootin.blogspot.com/2006/09/more-on-python-flatten.html –

回答

0

有两种短类似的方式来做到这一点:

import itertools 

# with unpacking 
list(itertools.chain(*outer)) 

# without unpacking 
list(itertools.chain.from_iterable(outer)) 
0
import itertools 

lst1 = ['1', '2', '3'] 
lst2 = ['4', '5'] 
outer = [lst1, lst2] 

flattened = list(itertools.chain(*outer)) 
['1', '2', '3', '4', '5']