Python 将string.split()输出为一行中的数组元素

Python 将string.split()输出为一行中的数组元素,python,Python,我有一个字符串myString: myString = "alpha beta gamma" 我想将myString拆分为三个字: myWords = myString.split() 然后,我可以单独访问每个单词: firstWord = myWords[0] secondWord = myWords[1] thirdWord = myWords[2] 我的问题:如何在一行中指定这三个单词作为split()函数的输出?例如,类似于: [firstWord secondWord third

我有一个字符串
myString

myString = "alpha beta gamma"
我想将myString拆分为三个字:

myWords = myString.split()
然后,我可以单独访问每个单词:

firstWord = myWords[0]
secondWord = myWords[1]
thirdWord = myWords[2]
我的问题:如何在一行中指定这三个单词作为
split()
函数的输出?例如,类似于:

[firstWord secondWord thirdWord] = myString.split()

Python 2.7中的语法是什么?

几乎完全符合您尝试的工作原理:

firstWord, secondWord, thirdWord = myString.split()
演示:


或者,使用列表理解

mystring = "alpha beta gamma"

myWords = [x for x in mystring.split()]

first = myWords[0]
second = myWords[1]
third = myWords[2]

print(first, second, third)

alpha beta gamma

如果您想列一张清单,请执行以下操作,上述答案也是正确的:

   my_list=[first, second, third] = "alpha beta gamma".split()

为了进一步阐述Pieter先生的回答和辩护律师提出的问题

如果
str.split()
返回的值超出了您允许的范围,它将因
ValueError:要解压缩的值太多而中断。在Python3中,您可以

first, second, third, *extraWords = str.split()
这将把所有额外的内容转储到一个名为
extraWords
的列表中。但是,对于Python2来说,它会变得更复杂,也不那么方便,如中所述

或者,您可以更改存储变量的方式,并使用理解功能将它们放入字典中

>>> words = {i:word for i,word in enumerate(myString.split())}
>>> words
{0: 'alpha', 1: 'beta', 2: 'gamma'}

这样做的好处是避免了将值一起解包(我认为这在Python 2中并不理想)。但是,这会混淆变量名称,因为它们现在被称为
单词[0]
,而不是更具体的名称

您正在运行哪个版本的python?您需要确保
split()
将返回三个参数,否则它将失败。我正在运行python 2.7.6此列表理解没有意义,它只是将
split()
返回的列表中的元素复制到一个新列表中,然后从
split()复制列表
将被丢弃。
>>> words = {i:word for i,word in enumerate(myString.split())}
>>> words
{0: 'alpha', 1: 'beta', 2: 'gamma'}