中年|漫话:如何给女朋友解释为什么计算机从0开始计数,而不是从1开始?( 三 )
如果使用1-based的索引方式 , 那么 , 想让a[:n]表达“取前n个元素”的意思 , 你要么使用闭合区间切片语法 , 要么在切片语法中使用切片起始位和切片长度作为切片参数 。
半开区间切片语法如果和1-based的索引方式结合起来 , 则会变得不优雅 。
而使用闭合区间切片语法的话 , 为了从第i位索引开始取后n个元素 , 你就得把表达式写成a[i:i+n-1] 。
这样看来 , 1-based的索引方式 , 与切片起始位+长度的语法形式配合使用会不会更合适?这样你可以写成a[i:n] 。 事实上 , ABC语言就是这样做的——它发明了一个独特的语法 , 你可以把表达式写成a@i|n 。
但是 , index:length这种方式在其它情况下适用吗?说实话 , 这点我有些记不清了 , 但我想我是被半开区间语法的优雅迷住了 。
特别是当两个切片操作位置邻接时 , 第一个切片操作的终点索引值是第二个切片的起点索引值时 , 太漂亮了 , 无法舍弃 。
例如 , 你想将一个字符串以i , j两个位置切成三部分 , 这三部分的表达式将会是a[:i] , a[i:j]和a[j:] 。
本文插图
本文插图
本文插图
本文插图
推荐阅读
- Spacex|卫星互联网轨道资源稀缺,中国航天如何与国际卫星界大亨竞争?
- 中年|北斗“一张网”可实现全天候、高精度、自主可控服务
- 中年|Python编程语言有什么独特的优势呢?
- 中年|谈一谈我的十年机械工作经历
- 中年|弹无虚发的背后,国产弹药质量把关人,精密机床都要自叹不如
- iQOO手机|毕业想换5G手机不知如何选?别犹豫了,iQOO Z1x适合你
- 中年|宿迁深圳招商再结硕果,签约项目19个,协议总投资158亿元
- 蓝橡树|牛娃爸爸分享: 孩子如何通过学习编程, 激活大脑, 提升成绩, 逆袭名校?
- 中年|苹果:已终止Epic Games开发者账号
- 中年|圆满的结局!苹果微信之间不用再二选一,美国政府还是做出让步
