Python 为什么可以';通过从0跨步到长度-1来反转字符串?
在Python中,我知道我可以反转字符串Python 为什么可以';通过从0跨步到长度-1来反转字符串?,python,string,reverse,Python,String,Reverse,在Python中,我知道我可以反转字符串 'dfdfsdf'[::-1] 这基本上使它倒退了一步。但是,当我尝试运行此程序时,它将不起作用 string = 'dfdfsdf' reversed = string[0:len(string):-1] print(reversed) 我只是想知道这样做不管用;格式是[first:last:step],所以我想我可以。它不起作用,因为列表中的迭代是这样工作的: list[start_point:end_point:iteration] reve
'dfdfsdf'[::-1]
这基本上使它倒退了一步。但是,当我尝试运行此程序时,它将不起作用
string = 'dfdfsdf'
reversed = string[0:len(string):-1]
print(reversed)
我只是想知道这样做不管用;格式是[first:last:step],所以我想我可以。它不起作用,因为列表中的迭代是这样工作的:
list[start_point:end_point:iteration]
reversed = "".join(reversed(string))
因此,对于您的方法,您需要编写:
reversed = string[len(string)-1:-len(string)-1:-1]
更多解释请参见dupe链接
或者,您可以使用以下函数获得保留列表/字符串:
list[start_point:end_point:iteration]
reversed = "".join(reversed(string))
你不能从零到一个跨越
-1
@khelwood的正数,这是行不通的<代码>-1仍被视为最后一个字符(不是0
之前的数字),因此返回一个空字符串。@Surya您到底想用反向字符做什么?@Sierramauntaintech Nothing。我主要用Java编程,刚刚开始学习Python。我只是想知道这样做不管用。因为格式是[first:last:step],所以我想我可以。你能再解释一下吗?我认为Chris_Rand关于链接问题的回答最能描述这种行为。你的最后一行应该清楚地说明为什么你应该避免将内置名称作为变量名。您立即对类reversed
,因此下一次调用将失败:reversed=“”.join(reversed(string))
您的解释是错误的,string[len(string):0:-1]==string[:::-1]
是False
,正如我所评论的string[len(string)-1:-1]
查看副本如果我这样做,那么为什么我必须按-1进行迭代?我是不是应该用1,因为它是反向的?是的,我解释错了。因为如果迭代到0,它将排除0索引。谢谢你指点它,克里斯。