![]() |
1
62
关于超范围指数的部分问题切片逻辑自动将索引剪辑到序列的长度。 为了方便起见,允许切片索引扩展到超过端点。必须对每个表达式进行范围检查,然后手动调整限制,这将是一件很痛苦的事情,所以Python会为您这样做。 考虑希望显示不超过文本消息前50个字符的用例。 简单的方法(Python现在做的事情):
或者困难的方法(自己做极限检查):
手动实现端点调整的逻辑很容易被忘记,也很容易出错(在两个地方更新50),很冗长,而且速度很慢。Python将这种逻辑移动到其内部,使其简洁、自动、快速和正确。这就是我喜欢蟒蛇的原因之一——) 关于分配长度与输入长度不匹配的部分问题
OP还想知道允许诸如
用弦作类比最容易看出动机。考虑一下,
这一切归根结底都是为了方便。 在引入 复制() 和 清除() 方法,这些习惯用语:
即使现在,我们在筛选时也会使用此项更新列表:
希望这些实际的例子能给我们一个很好的视角来解释为什么切片可以像它那样工作。 |
![]() |
2
20
这个 documentation 有你的答案:
这个
documentation of
基本上,像
此行为与将列表分配给空切片时所发生的行为相同。 在任何地方 在原始列表中。例如:
|
![]() |
Juan Lozano · r中日期的seq函数工作不正常 3 年前 |
|
user9455316 · 从R中的具体分布减少数字生成器的序列 7 年前 |
![]() |
Ast · 在sql oracle中填写序号 7 年前 |
![]() |
Jaap Baanders · 统计子组中缺少的实例 7 年前 |
![]() |
Andy · 基于文件的HSQLDB不跟踪序列上的调用下一个值 7 年前 |
![]() |
Ruby Learner · Ruby-比较数组中的特定值/目标值 7 年前 |
![]() |
Ricardo Castro · SQL Server:按序列号聚合 7 年前 |