简单的问题:给一个字符串
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)
像打包一样?
谢谢
从Python 3和PEP 3132开始,您可以使用扩展解包.
这样,您可以解压缩包含任意数量单词的任意字符串.第一个将存储到变量中first,其他将属于列表(可能为空)others.
first, *others = string.split()
Run Code Online (Sandbox Code Playgroud)
另请注意,默认分隔符.split()是空格,因此您无需明确指定它.
许多算法需要在"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)
对于更复杂的解包模式,新语法看起来更清晰,并且不再需要笨拙的索引处理.