各位程序员
我是编程新手,想知道是否有人能帮我弄清楚一些东西?我不确定这是因为它的写作方式,还是仅仅是一个真实的,但矛盾的做事方式。在
我目前正在从《在一天内学习Python》一书中学习Python,他们对列表切片的解释让我很困惑。开始时,它们声明单个索引总是从零开始,但在后面的示例中,它们似乎使用“1”作为起点(?)以指数5-1结束?在
他们在下面使用的示例是:userAge=[21,22,23,24,25]
在开始的时候,在下面的摘录中,他们解释说指数为21=0,指数为22=1,23=2,24=3,25=4。在
但当他们到达摘录的底部时,他们在谈论第五个索引(尽管上面的例子中没有索引)。。。在
这是这本书的摘录。我强调了让我困惑的地方:
“列表中的各个值可以通过其索引访问,索引始终从零开始,而不是1。这是几乎所有编程语言(如C和Java)中的常见做法。因此,第一个值的索引为0,下一个值的索引为1,依此类推。例如,userAge[0]=21,userAge[1]=22。
或者,您可以从后面访问列表的值。列表中最后一项的索引为-1,后一项的索引为-2,依此类推。因此,userAge[-1]=25,userAge[-2]=24。
您可以将列表或其一部分分配给变量。如果编写userAge2=userAge,变量userAge2将变为[21,22,23,24,25]。
如果编写userAge3=userAge[2:4],则将索引为2的项目分配给索引4-1,从列表userAge分配给list userAge3。换句话说,userAge3=[23,24]。
符号2:4被称为切片。每当我们在Python中使用切片表示法时,开始索引处的项目总是被包括在内,但末尾的项目总是被排除在外。因此,符号2:4指的是从索引2到索引4-1的项目(即索引3),这就是为什么userAge3=[23,24],而不是[23,24,25]。
切片表示法包括第三个数字,称为步进器。如果我们写userAge4=userAge[1:5:2],我们将得到一个子列表,它包含从索引1到索引5-1的每一秒的数字,因为步进器是2。因此,userAge4=[22,24]。
此外,切片符号还有有用的默认值。第一个数字的默认值是零,第二个数字的默认值是被切片的列表的大小。例如,userAge[:4]为您提供从索引0到索引4-1的值,而userAge[1:]为您提供从索引1到索引5-1的值(因为userAge的大小是5,即userAge有5个项)。“
如果原始示例只有索引0-4(尽管这意味着列表中有五个项),我不确定他们从哪里得到“5-1”。这是“规则更改”还是他们将索引编号从0更改为4,更改为1到5?我知道‘5-1’意味着你会回到索引4,因为上面提到的“结束独占”,但是你不需要在减去它之前把它放在那里吗?在原始示例中,没有第5个索引(尽管列表中有5个项)。。。在
不用说,我很困惑!哈哈。在
提前感谢您的帮助!在
简。十
切片可以这样解释。在
对于步骤
^{pr2}$::如果一个元素包含一个空的元素,我只会给你一个例子。在
所以,在这里,当我们使用`userage[1:]时,一切都从第二个元素开始。在
好吧,这段摘录中有很多误导性的解释。在
关于切片的默认值-忘记索引,在“人类”的解释中:
data[x:]
–从索引x
开始一直到结尾data[:x]
–从最开始到第x
-th元素的切片他们说
5 - 1
的原因是因为第二个切片值是排他的,也就是说,要显式地切片到长度为N的数组的末尾,您将编写[:N]
,但最后一个元素将有索引N-1
,这正是因为索引从0开始,但元素计数从1开始。在当切片
userAge[1:]
时,从第二个元素一直到最后一个元素,都会得到所有内容。在userAge[1:]
=[22,23,24,25]相关问题 更多 >
编程相关推荐