在Python中将列表列表转换为列表

时间:2014-04-05 22:11:14

标签: python list python-2.7

我有一个这样的清单:

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

我希望将其转换为:

a=['b','c']

我该怎么做?

2 个答案:

答案 0 :(得分:3)

你可以使用 list comprehension (在这种情况下速度非常快):

print [item for sublist in a for item in sublist]

<强>演示:

>>> l = ['b', ['c']]
>>> [item for sublist in l for item in sublist]
['b', 'c']

注意:

这只有在列表中包含长度为1的字符串时才会起作用,如@RemcoGerlich所述。

修改

如果字符串包含多个字符,则可以使用以下方法(请注意,在Python 3中不推荐使用compiler):

from compiler.ast import flatten    
print flatten(a)

答案 1 :(得分:0)

使用map的替代方法:

reduce((lambda arr,x: arr + list(x)),a,[])

示例:

>>> a=['b',['c']]
>>> a = reduce((lambda arr,x: arr + list(x)),a,[])
>>> a
['b', 'c']