Python在字符串中获取x个第一个单词

时间:2014-03-31 16:49:56

标签: python string

我正在寻找一个代码,该代码在脚本中包含4(或5)个第一个单词。 我试过这个:

import re    
my_string = "the cat and this dog are in the garden"    
a = my_string.split(' ', 1)[0]
b = my_string.split(' ', 1)[1]

但我不能超过2个字符串:

a = the
b = cat and this dog are in the garden

我想:

a = the
b = cat
c = and
d = this
...

3 个答案:

答案 0 :(得分:17)

split()方法的第二个参数是限制。不要使用它,你会得到所有的话。 像这样使用它:

my_string = "the cat and this dog are in the garden"    
splitted = my_string.split()

first = splitted[0]
second = splitted[1]

...

此外,每次想要一个单词时都不要拨打split(),这很贵。做一次,然后稍后使用结果,就像在我的例子中一样 如您所见,不需要添加' '分隔符,因为split()函数(None)的默认分隔符匹配所有空格。但是,如果您不想在Tab上拆分,则可以使用它。

答案 1 :(得分:13)

您可以在split:

创建的列表中使用切片表示法
my_string.split()[:4] # first 4 words
my_string.split()[:5] # first 5 words

N.B。这些是示例命令。你应该使用其中一个,而不是两个。

答案 2 :(得分:7)

您可以轻松地在空格上拆分字符串,但如果您的字符串中没有足够的单词,则在列表为空的情况下,分配将失败。

a, b, c, d, e = my_string.split()[:5] # May fail

最好保持列表不变,而不是将每个成员分配给个人名称。

words = my_string.split()
at_most_five_words = words[:5] # terrible variable name

这是一个可怕的变量名称,但我用它来说明你不能保证得到五个字的事实 - 你只能保证最多得到 五个字。