java建立数组, int[] a = new int[3], 建立一个以为数组并将其初始化位3个位置的内存,

a[1] = 3;java的索引从0开始,而C和python是从0开始的。

为什么python中list的索引从0开始呢?

因为切片语法的优雅。

我们先来看看切片语法的使用吧。它最常见的使用应该是“切出数组的前n位”和“切出数组第i位后的 n位”(前者是后者在i==起始位下的特例)。如果我们不需要使用难看的+1或-1补偿方式,那么代码就会美观许多。

通过使用0-based索引法,Python的半开区间以及缺省匹配区间都很美观,如:a[:n] 和a[i:i+n];前者是a[0:n]的省略写法。

在1-based索引法下,如果你想用a[:n]来表示切出前n个元素的话,你只能选择在切片语法中使用切片起始位和切片长度2个参数,或者闭区间的用法。使用1-based索引法,半开区间切片语法就显得不够美观。同样地,使用闭区间切片语法的话,你只能用a[i:i+n-1]来表示从第i位取n个元素。所以如果使用1-based索引法的话,使用切片长度更合适。你可以写成a[i:n]。事实上,ABC语言就是这样的——它用了一种特殊的用法,写为a@i|n。(参考http://homepages.cwi.nl/~steven/abc/qr.html#EXPRESSIONS)

但是index:length的用法适合其它情况吗?老实说,我不太记得了,但我想我当时的确很喜欢它美观的半开区间语法。特别是两个切片操作位置相邻并且第一个切片操作的终点索引就是第二个切片的起点索引的时候,它的写法实在是太漂亮了。比如,你想以i , j两点来切分一个数组的话,它们将会是a[:i]、a[i:j]、和 a[j:]。

这就是Python 使用0-based索引法的原因。

python列表的索引是从0开始的_为什么python中list的索引从0开始?相关推荐

  1. python 列表 mysql in_关于mysql:内嵌要在python MySQLDB IN子句中使用的列表

    我知道如何将列表映射到字符串: foostring =",".join( map(str, list_of_ids) ) 而且我知道我可以使用以下命令将该字符串放入IN子句中: c ...

  2. python花式索引_初探Numpy中的花式索引

    Numpy中对数组索引的方式有很多(为了方便介绍文中的数组如不加特殊说明指的都是Numpy中的ndarry数组),比如:基本索引:通过单个整数值来索引数组 import numpy as np arr ...

  3. Python:列表推导生成随机数矩阵(高教社,《Python编程基础及应用》习题4-10) (10分)---生成一个m行n列的元素值不大于20的随机数矩阵(二维列表)

    前言 PTA程序设计类教学平台-def函数 运行环境Python3.6 小白进阶之路的学习与记录之------列表 题目: 编写一个Python函数,生成一个m行n列的元素值不大于20的随机数矩阵(二 ...

  4. python文件读取方法read(size)的含义是_在Python中可使用read([size])来读取文件中的数据,如果参数size省略,则读取文件中的()。(4.0分)_学小易找答案...

    [单选题]文本文件存储的是(),由若干文本行组成,通常每行以换行符 '\n' 结尾.(4.0分) [单选题]()属性是返回被打开文件的访问模式.(4.0分) [单选题]重力坝是由砼或( )修筑而成的大 ...

  5. python动图转换成字符画动图_基于Python实现图画转换字符画

    微信改版,加星标不迷路! 基于Python实现图画转换字符画 作者:阿广 概述 前言 准备工作 识别原理 静态图像处理 动态图像处理 结果 阿广说 群聊交流 福利一刻 推荐阅读 前言 前几天写了基于P ...

  6. python 数据分组后看每组多少个_【Python】分组统计GroupBy技术详解

    摘要 进行数据分析时,GroupBy分组统计是非常常用的操作,也是十分重要的操作之一.基本上大部分的数据分析都会用到该操作,本文将对Python的GroupBy分组统计操作进行讲解. 1.GroupB ...

  7. python函数方法里面用浅复制深复制_图解 Python 浅拷贝与深拷贝

    Python 中的赋值语句不会创建对象的拷贝,仅仅只是将名称绑定至一个对象.对于不可变对象,通常没什么差别,但是处理可变对象或可变对象的集合时,你可能需要创建这些对象的 "真实拷贝" ...

  8. python连接sqlserver 多条sql语句后提交_利用python操作sqllite

    SQLite3 可使用 sqlite3 模块与 Python 进行集成.sqlite3 模块是由 Gerhard Haring 编写的.它提供了一个与 PEP 249 描述的 DB-API 2.0 规 ...

  9. python爬取付费音乐包有什么用_用Python制作音乐聚合下载器!付费的好像也能下载哦!...

    现在的音乐APP有很多,为了不下载很多的APP,所以咱用python做了一个聚合的音乐下载器,现在聚合了咪咕音乐.QQ音乐,下面是效果图 安装 需要安装一个辅助模块 prettytable,用于美化控 ...

最新文章

  1. JavaSE总结笔记
  2. dqn在训练过程中loss越来越大_[动手学强化学习] 2.DQN解决CartPole-v0问题
  3. 前端模板Nunjucks简介
  4. akka的介绍_Akka笔记–演员介绍
  5. tkinter 菜单添加事件_Tasker的最新测试劫持了Android 11的电源菜单
  6. 引入媒体播放器media player 并调试它的选择模式 0130
  7. android关于pull解析的问题-1
  8. 5G 登上“神坛”,区块链裁员求生!
  9. volley 调用php接口,从Android发送数组并使用Volley在PhP服务器上...
  10. 永恒之蓝(MS17010)漏洞复现
  11. VISHAY ZWS 15 27R有一种幸福叫微笑
  12. 稳定云服务器出租_云服务器租用,安全稳定的DDoS高防独立IP弹性云主机租用_爱普互联...
  13. 网页上怎么查询服务器地址,怎么查看一个网页的服务器地址
  14. 想把手机内容投屏到电脑 并且可以用电脑控制手机怎么办,很简单
  15. Python中open函数的各个mode的理解
  16. 前端vue从后台取到数据(数组对象)后遍历给对象添加属性,修改这个属性为什么没有用?
  17. PJzhang:关闭wps小广告和快速关闭445端口
  18. 在ubuntu16.04下面安装tplink无线网卡驱动
  19. 1527编码协议_EV1527解码,我也贡献一个,抗干扰,自适应.....
  20. POJ 2491 Scavenger Hunt 解题报告 再次利用map判重

热门文章

  1. IE10不显示swfupload上传附件按钮问题
  2. python-正则匹配163格式邮箱
  3. 用Python+OpenCV进行数据扩充
  4. WiFi连接风险造成个人信息外泄 网络安全需加强
  5. 迷你旅游网——项目初始化(从GitHub上pull项目并导入IDEA......)
  6. USB-IF宣布三星Galaxy S20系列手机获得USB快速充电器认证
  7. 已知原函数和导函数的关系_原函数和导函数的关系
  8. 基于某地区高校数据探究大学生健康状态
  9. swift No such module ‘Kingfisher‘
  10. 为中文书籍翻译感到担忧