python列表左闭右开_【知识拓展】为什么 Python 的 Range 要设计成左开右闭区间?...

本文探讨了Python Range为何采用左闭右开区间的原因,通过对比不同表示法,分析自然数的特性,指出这种设计在表示序列长度、相邻子序列关系以及空集表示上的优势。
摘要由CSDN通过智能技术生成

Python 的 Range 是左开右闭的,而且除了 Python 的 Range,还有各种语言,如 Swift 语言的..

本翻译同时发布于个人博客

原文

Why numbering should start at zero by Dijkstra[extension://bfdogplmndidlpjfhoijckpakkdjkkil/pdf/viewer.html?file=https%3A%2F%2Fwww.cs.utexas.edu%2Fusers%2FEWD%2Fewd08xx%2FEWD831.PDF]

翻译版

为了表示 2,3,...,12 这样一个序列,有四种方法

2 ≤ i < 13(左闭右开区间)

1 < i ≤ 12(左开右闭区间)

2 ≤ i ≤ 12(闭区间)

1 < i < 13(开区间)

其中有没有哪一种是最好的表示法呢?有的。前两种表示法的两端数字的差刚好是序列的长度。而且在这两种的任何一种表示法中,两个相邻子序列的其中一个子序列的上界就是另一个子序列的下界。这只是让我们挑出了前两种,而不能让我们从前两种中选出最好的一种表示法来,让我们继续分析。

注意到自然数是有最小值的。当我们在下界取

那我们再来看看上界,在下界使用≤时,如果我们对上界也使用≤会发生什么呢?考虑一下当我们想要表示一个空集时,比如 0 ≤ i ≤ -1 上界会小于下界。显然,这也是很难令人接受的,太反直觉了。而如果上界使用

有疑问的话,注意一下,0 ≤ i < 0 的含义是,i < 0 && i >= 0,他们之间是逻辑与的关系,所以

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值