Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python索引冲突_Python_List_Indexing - Fatal编程技术网

Python索引冲突

Python索引冲突,python,list,indexing,Python,List,Indexing,这是一张公开课上的照片。在这张图片中,s='Arthur',s[5:2:-2]=='ut'。这是有道理的,因为[:2]是“Ar”,而[3://code>是“hur”,但实际上这是错误的。我输入了s[5:2:-2],输出为“rh”。我也得到它,因为索引5是'r',但由于:2从'r'开始,反向5应该从'u'开始。这真的让人困惑,这是一门顶尖大学的好课程。哪里出了问题?看来作者确实犯了个错误。通常建议将字符串索引视为字母之间的位置,而不是字母本身,因此索引5位于u和r之间。但这种精神援助只适用于积极的


这是一张公开课上的照片。在这张图片中,
s='Arthur'
s[5:2:-2]=='ut'
。这是有道理的,因为
[:2]
是“Ar”,而
[3://code>是“hur”,但实际上这是错误的。我输入了
s[5:2:-2]
,输出为“rh”。我也得到它,因为索引5是'r',但由于
:2
从'r'开始,反向5应该从'u'开始。这真的让人困惑,这是一门顶尖大学的好课程。哪里出了问题?

看来作者确实犯了个错误。通常建议将字符串索引视为字母之间的位置,而不是字母本身,因此索引5位于
u
r
之间。但这种精神援助只适用于积极的步骤。使用1的负步骤更容易看到:如果您编写
s[5:4:-1]
,您将提取索引
5
右侧的字母,即
r
。类似地,
s[1:0:-1]
将为您提供第二个字母:
r


这意味着
s[5:4:-1]
挑选出
s[5]
,即它与
s[5:6:1]
的字符串位置相同,而不是
s[4:5:1]
作为该图像的创建者明确假定的位置。换言之,实际情况是索引
5
确实选择了一个字符,而不是字符间的位置。具有负步长的切片从索引
5
处的字符开始,并逐步向后移动。切片确实在切片的第二个索引处的字符之前停止;假装索引在字符之间是一种很好的直观帮助,但正如您所发现的,它只适用于切片步骤为正的情况。

我认为您是正确的,幻灯片是错误的-
s[4:1:-2]
给出所示的
'ut'
。是的,我知道,我在这里询问逻辑,因为[:2]是'Ar',“rh”没有意义。那么你能解释一下为什么[:2]输出“Ar”,用你的逻辑[:2]应该打印出“Art”,这并不是我的解释所预测的。切片在第二个索引之前停止。“职位之间”的业务是一种合理化。我给作者留了点余地,我承认我在写这个答案时有几次不确定。负指数并没有被我们大多数人广泛使用,所以很容易被“人物之间”的隐喻所冲昏头脑。不过,你能发现它真是太好了!另一方面,你应该让作者知道这个错误,这样他们就可以修复它。谢谢,现在这很有意义,作者可能已经知道了,因为这个课程没有提供视频,只有幻灯片。