在Python中有空格之前,有没有有效的方法来选择字符串的最后一个字符?
例如,我有以下字符串:
str = 'Hello my name is John'
我想要回复'约翰'。但如果str是:
str = 'Hello my name is Sally'
我想重新回顾'莎莉'
答案 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对象会抛出错误)