Python 设置向后子字符串结尾的变量不能是数字?
如果我想从一个单词中提取一个子字符串,从末尾开始,到存储在变量中的索引,该怎么办Python 设置向后子字符串结尾的变量不能是数字?,python,Python,如果我想从一个单词中提取一个子字符串,从末尾开始,到存储在变量中的索引,该怎么办 单词[4:0:-1]不包含第一个字母,但单词[4::-1]包含第一个字母。如果我用一个名为“a”的变量来确定最后一个字母,该怎么办。只有将“a”设置为“无”才有可能吗?如果您想要最后一个字母,您根本不需要它,请按照您的示例执行以下操作: word = "Hello" a = word[4:0:-1] a = a[:1] a => 'o' 但你正在扭转局面。。。根本没有必要 如果我用一个叫做“a”
单词[4:0:-1]不包含第一个字母,但单词[4::-1]包含第一个字母。如果我用一个名为“a”的变量来确定最后一个字母,该怎么办。只有将“a”设置为“无”才有可能吗?如果您想要最后一个字母,您根本不需要它,请按照您的示例执行以下操作:
word = "Hello"
a = word[4:0:-1]
a = a[:1]
a
=> 'o'
但你正在扭转局面。。。根本没有必要
如果我用一个叫做“a”的变量来确定最后一个字母呢
那你根本不需要倒车。这将有助于:
a = word[-1]
我猜OP意味着索引存储在变量a中 在这种情况下,他可以这样做:
a=0
word[4:(None if a==-1 else a):-1]
def reverse_string(s:str, include_first_lett=True) -> str:
或者更一般地说:
word="Konichiwa"
a=0
word[len(word):(None if a==-1 else a): -1]
摘自你的评论: 我希望能够选择我想要的是“奥利”还是“奥利” 我假设您想要一个带有签名的函数,比如:
a=0
word[4:(None if a==-1 else a):-1]
def reverse_string(s:str, include_first_lett=True) -> str:
所以,只要做:
def reverse_string(s:str, include_first_lett=True) -> str:
end_idx = None if include_first_lett else 0
return s[:end_idx:-1]
# or more verbosely
# if include_first_lett:
# return s[::-1]
# else:
# return s[:0:-1]
#
# or EVEN more verbosely, but more readable to someone who hasn't spent
# too long memorizing the slicing syntax...
# if include_first_lett:
# return s[::-1]
# else:
# return (s[1:])[::-1]
>>> reverse_string("Hello")
'olleH'
>>> reverse_string("Hello", False)
'olle'
>>>
谢谢分享,我觉得这是一个奇怪的问题,相反的是没有必要的。漂亮的视图最后一个字母,我是指原始字符串中的第一个字母,输出中的最后一个字母。如果字符串是“Hello”,我希望能够选择是要“olle”还是“olleH”。我认为应该是“>=0”,因为word[:0:-1]返回除最后一个字母以外的所有字符,word[:None:-1]也包括最后一个字母。没错,迪玛。这就是我发布未经测试的代码所得到的。更新后的版本应该很好。我想我应该使用:[4:(如果a==-1,则为None,否则为a):-1],这样索引就与Python中的索引相同,并且-1是切片“应该”的结尾。