试试这个:
a = [['a'],['b']]
a = [item for list in a for item in list]
print a
>>>['a', 'b']
尝试:
[i[0] for i in [['a'], ['b']]
>>> ['a','b']
[['a','b'],['c','d']]
是行不通的。 - Ashwini Chaudharyitertools
,特别是 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
(本文翻译内容来自这个问题)
itertools
高效。 - arshajiiitertools.chain()
而非sum()
,因为例如对于元组列表,sum()
无法正常工作。甚至官方文档都指出应该优先选择chain()
:http://docs.python.org/2/library/functions.html#sum - Ashwini Chaudhary