将列表[['a'],['b']]转换为['a','b']

时间:2012-11-24 22:32:51

标签: python list python-3.x nested

  

可能重复:
  Making a flat list out of list of lists in Python

python 3中,如何将列表[['a'], ['b']]转换为['a','b']

我是初学程序员,自己也无法解决这个问题。

3 个答案:

答案 0 :(得分:3)

试试这个:

a = [['a'],['b']]

a = [item for list in a for item in list]
print a
>>>['a', 'b']

答案 1 :(得分:2)

尝试:

[i[0] for i in [['a'], ['b']]
>>> ['a','b']

答案 2 :(得分:2)

使用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

(根据this问题改编的测试)