3

是否有任何有效的方法来选择字符串的最后一个字符,直到 Python 中出现空格?

例如我有以下字符串:

str = 'Hello my name is John'

我想返回“约翰”。但如果 str 是:

str = 'Hello my name is Sally'

我想重播“莎莉”

4

3 回答 3

24

只需在空格上拆分字符串,然后获取数组的最后一个元素。或用于rsplit()从端开始拆分:

>>> st = 'Hello my name is John'
>>> st.rsplit(' ', 1)
['Hello my name is', 'John']
>>> 
>>> st.rsplit(' ', 1)[1]
'John'

第二个参数指定split要执行的次数。由于您只需要最后一个元素,因此我们只需要拆分一次。

正如注释中指定的那样,您可以只传递None第一个参数,在这种情况下,将使用默认分隔符,即空格:

>>> st.rsplit(None, 1)[-1]
'John'

使用-1as index 是安全的,以防字符串中没有空格。

于 2013-10-10T18:30:07.210 回答
3

这真的取决于你所说的高效,但我能想到的最简单(有效利用程序员时间)的方法是:

str.split()[-1]

这对于空字符串会失败,因此您需要检查一下。

于 2013-10-10T18:35:06.487 回答
1

我认为这就是你想要的:

str[str.rfind(' ')+1:]

这将创建一个子字符串,从str最右边的空间之后的字符开始,直到最后一个字符。

这适用于所有字符串 - 空或其他(除非它不是字符串对象,例如 None 对象会抛出错误)

于 2013-10-10T19:09:00.260 回答