1
我想找到一个简短而优雅的方式来访问嵌套列表中的所有单个元素。例如:访问嵌套列表的所有元素
lst1 = ['1', '2', '3']
lst2 = ['4', '5']
outer = [lst1, lst2]
是否有列表理解会返回['1', '2', '3', '4', '5']
?
我想找到一个简短而优雅的方式来访问嵌套列表中的所有单个元素。例如:访问嵌套列表的所有元素
lst1 = ['1', '2', '3']
lst2 = ['4', '5']
outer = [lst1, lst2]
是否有列表理解会返回['1', '2', '3', '4', '5']
?
有两种短类似的方式来做到这一点:
import itertools
# with unpacking
list(itertools.chain(*outer))
# without unpacking
list(itertools.chain.from_iterable(outer))
import itertools
lst1 = ['1', '2', '3']
lst2 = ['4', '5']
outer = [lst1, lst2]
flattened = list(itertools.chain(*outer))
['1', '2', '3', '4', '5']
'外= LST1 + lst2' –
参见[制作一个平面列表列于Python列表的列表](HTTP:// stackoverflow.com/questions/952914/making-a-flat-list-out-of-list-of-lists-in-python)。我想这就是你要求的 – roganjosh
你对任意嵌套列表感兴趣吗,或者只有那些嵌套到一个单一程度的人(如你的例子)?为了展平任意深度的结构,请参阅http://rightfootin.blogspot.com/2006/09/more-on-python-flatten.html –