是否有任何有效的方法来选择字符串的最后一个字符,直到 Python 中出现空格?
例如我有以下字符串:
str = 'Hello my name is John'
我想返回“约翰”。但如果 str 是:
str = 'Hello my name is Sally'
我想重播“莎莉”
只需在空格上拆分字符串,然后获取数组的最后一个元素。或用于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
as index 是安全的,以防字符串中没有空格。
这真的取决于你所说的高效,但我能想到的最简单(有效利用程序员时间)的方法是:
str.split()[-1]
这对于空字符串会失败,因此您需要检查一下。
我认为这就是你想要的:
str[str.rfind(' ')+1:]
这将创建一个子字符串,从str
最右边的空间之后的字符开始,直到最后一个字符。
这适用于所有字符串 - 空或其他(除非它不是字符串对象,例如 None 对象会抛出错误)