可能重复:
从 Python 中的列表列表中制作一个平面列表
在python 3
,如何将列表转换[['a'], ['b']]
为['a','b']
?
我是一名初学者程序员,自己无法解决这个问题。
尝试这个:
a = [['a'],['b']]
a = [item for list in a for item in list]
print a
>>>['a', 'b']
使用itertools
,特别itertools.chain
是(这比设计自己的方式要好得多):
>>> l = [['a'], ['b']]
>>> print(list(itertools.chain.from_iterable(l)))
['a', 'b']
这也比纯列表理解解决方案更快:
$ python -mtimeit -s'l=[[1,2,3],[4,5,6], [7], [8,9]]*99' '[item for sublist in l for item in sublist]'
10000 loops, best of 3: 53.9 usec per loop
$ python -mtimeit -s'l=[[1,2,3],[4,5,6], [7], [8,9]]*99' 'list(itertools.chain.from_iterable(l))'
10000 loops, best of 3: 29.5 usec per loop
(从这个问题改编的测试)
尝试:
[i[0] for i in [['a'], ['b']]
>>> ['a','b']