选择字符串的最后一个字符,直到Python中的空格

时间:2013-10-10 18:28:16

标签: python string

在Python中有空格之前,有没有有效的方法来选择字符串的最后一个字符?

例如,我有以下字符串:

str = 'Hello my name is John'

我想要回复'约翰'。但如果str是:

str = 'Hello my name is Sally'

我想重新回顾'莎莉'

3 个答案:

答案 0 :(得分:13)

只需将字符串拆分为空格,然后获取数组的最后一个元素。或者使用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'

使用-1作为索引是安全的,以防你的字符串中没有空格。

答案 1 :(得分:1)

这实际上取决于你的有效意思,但我能想到的最简单(有效利用程序员时间)的方式是:

str.split()[-1]

这对空字符串失败,因此您需要检查它。

答案 2 :(得分:1)

我认为这就是你想要的:

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

这会从str创建一个子字符串,从最右边找到的空格后面的字符开始,直到最后一个字符。

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