Python - 在由空格分隔的列表中拆分字符串

时间:2018-03-21 11:41:43

标签: python list split

我有以下格式的列表:

mylist = ["a word 1 2 3 4","b word 5 6 7 8"]  

我正在尝试将其拆分为2个新列表,每个字符串一个,即:

newlist1 = ["a","word","1","2","3","4"]
newlist2 = ["b","word","5","6","7","8"]   

但我没有运气。我尝试了各种方法并查看了许多类似的问题,但未能成功应用于我的问题。

我将非常感谢任何帮助,我对Python仍然很陌生,我知道这可能是一件非常简单的事情!

3 个答案:

答案 0 :(得分:0)

您可以使用str.split()

<强>实施例

mylist = ["a word 1 2 3 4","b word 5 6 7 8"]
for i in mylist:
    print(i.split())

输出

['a', 'word', '1', '2', '3', '4']
['b', 'word', '5', '6', '7', '8']

使用列表理解

print([i.split() for i in mylist])

答案 1 :(得分:0)

你可以这样做

splitSentences = [ sent.split(" ") for sent in mylist]
  

[['a','word','1','2','3','4'],['b','word','5','6','7' ,'8']]

答案 2 :(得分:0)

如果要在列表中拆分两个字符串并将结果绑定到两个变量,您只需执行此操作:

mylist = ["a word 1 2 3 4","b word 5 6 7 8"]  

newlist1 = mylist[0].split()
newlist2 = mylist[1].split()

对于2个变量,这是可以的,但一般来说,如果你有更多的字符串需要拆分,那很快就会变得难以处理。对于更通用的解决方案,您只需使用列表列表:

>>> newlists = [s.split() for s in mylist]
>>> newlists
[['a', 'word', '1', '2', '3', '4'], ['b', 'word', '5', '6', '7', '8']]

然后按索引访问每个列表:

>>> newlists[0]
['a', 'word', '1', '2', '3', '4']
>>> newlists[1]
['b', 'word', '5', '6', '7', '8']

或者您可以使用字典:

>>> d = {'newlist{}'.format(i) : s.split() for i, s in enumerate(mylist, 1)}
>>> d
{'newlist1': ['a', 'word', '1', '2', '3', '4'], 'newlist2': ['b', 'word', '5', '6', '7', '8']}

现在您可以按键访问列表:

>>> d['newlist1']
['a', 'word', '1', '2', '3', '4']
>>> d['newlist2']
['b', 'word', '5', '6', '7', '8']