我有一个这样的清单:
a=['b',['c']]
我希望将其转换为:
a=['b','c']
我该怎么做?
答案 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']