Pythonic分割字符串并解压缩成变量的方法?

Tho*_*ski 4 python python-3.x

简单的问题:给一个字符串

string = "Word1 Word2 Word3 ... WordN"
Run Code Online (Sandbox Code Playgroud)

是否有一种pythonic方式来做到这一点?

firstWord = string.split(" ")[0]
otherWords = string.split(" ")[1:]
Run Code Online (Sandbox Code Playgroud)

像打包一样?

谢谢

Del*_*gan 9

从Python 3和PEP 3132开始,您可以使用扩展解包.

这样,您可以解压缩包含任意数量单词的任意字符串.第一个将存储到变量中first,其他将属于列表(可能为空)others.

first, *others = string.split()
Run Code Online (Sandbox Code Playgroud)

另请注意,默认分隔符.split()是空格,因此您无需明确指定它.


McG*_*ady 5

扩展的Iterable解包.

许多算法需要在"first,rest"对中拆分序列,如果你使用的是Python2.x,你需要尝试这样做:

seq = string.split()
first, rest = seq[0], seq[1:]
Run Code Online (Sandbox Code Playgroud)

它被清洁剂取代,可能更有效Python3.x:

first, *rest = seq
Run Code Online (Sandbox Code Playgroud)

对于更复杂的解包模式,新语法看起来更清晰,并且不再需要笨拙的索引处理.