为什么区间个切片要忽略最后一个元素

本文探讨了Python中区间切片为何通常忽略最后一个元素,引用了Edsger W. Dijkstra的观点,强调了从美学和实用性的角度,选择[a, b)作为区间表达式的理由,并指出某些库可能不遵循这一惯例。" 137856321,11374066,JavaScript查找对象属性技巧与前端学习资源分享,"['javascript', '前端开发', '学习资源']
摘要由CSDN通过智能技术生成

这个问题在fluent python提到,同时引了计算机Edsger W. Dijkstra的解释。简要记录如下
当我们想取出2,3,…12这个区间时,共有四种表达式可选:

a) 2 ≤ i < 13
b) 1 < i ≤ 12
c) 2 ≤ i ≤ 12
d) 1 < i < 13

其中a)、b)表达式可以从两端相减得到区间长度,这是其中一个优点。
但是并不是决定性因素。重新考虑上下界问题。
如果不包含下界情况,那么如果想得到一个自然数数列,必须引入非自然数-1,表达式如下:

-1 < i < N

That is ugly(原文)
包含下界的前提下,如果再包含上界,那么我们如果想通过收缩创造一个空数列就非常别扭。 上界小于下界???That is ugly(原文)

所以a)是区间表达式的首选,即[a, b)。
这在Python中也是惯用方式:

a = [1, 2, 
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值