python 2.7.5+拆分列表['a','xxx yyy zzz']进入列表['a','xxx','yyy','zzz']怎么样?

时间:2014-02-09 13:20:14

标签: python string list split

如何拆分

list = ['a', 'xxx yyy zzz']

list = ['a', 'xxx', 'yyy', 'zzz']

在Python 2.7.5+(默认,2013年9月19日,13:48:49)[linux4上的[GCC 4.8.1])?

尝试了

...
for i in range(0, len(list)):
    list[i] = list[i].split(' ')
...

但没有结果。

4 个答案:

答案 0 :(得分:4)

您可以使用列表理解来完成此操作,例如

my_list = ['a', 'xxx yyy zzz']
print [word for words in my_list for word in words.split()]

<强>输出

['a', 'xxx', 'yyy', 'zzz']

建议:永远不要将变量命名为list,因为它会影响内置list函数

答案 1 :(得分:3)

一种快速而肮脏的方式是:

l = ['a', 'xxx yyy zzz']
l = " ".join(l).split()

更好的是:

l = ['a', 'xxx yyy zzz']
l = sum((s.split() for s in l), [])

答案 2 :(得分:3)

使用map和未绑定方法str.split的另一种解决方案:

>>> lst = ['a', 'xxx yyy zzz']
>>> sum(map(str.split, lst), [])
['a', 'xxx', 'yyy', 'zzz']

>>> from itertools import chain
>>> list(chain.from_iterable(map(str.split, lst)))
['a', 'xxx', 'yyy', 'zzz']

答案 3 :(得分:0)

>>> [word for s in L for word in s.split()]
['a', 'xxx', 'yyy', 'zzz']