今天老大问大家为什么数组的索引从0开始?

之前关于数组的索引为甚么从0开始?
有很多说法:
1:
下标的含意是:当前元素到第一个元素的偏移量。第一个元素的下标自然就是0,第二个元素的下标为1,第n个元素的下标为n-1。

2:
计算一个数组元素的地址需要将数组的起始地址加上该元素的索引。将起始索引设为1要么会浪费数组的第一个元素的空间,要么会花费额外的时间来将索引减1。

3:
数组的下标就是对array这个数组进行偏移。这是硬件特性决定的。

因为数据都是存放在内存地址里的,而数据的获取方式,是先得到一个数据的地址,然后对其进行偏移。
如果数组从1开始计算,那么获取数组的第一个元素表达方式就是array[1]

还有什么规定之类的…各种官方的说法和度娘都太笼统了!!!
终于BOSS今天闲聊时说到这个话题!!!
他说试想你写数字时,随便写:123/234/568/987/258/0123/02365/
写的很爽,写了满满1本书的数字!!!哈哈… 但是当你再从这些数据里找一个指定的数字时,会不会感觉蛋疼! 这就好比计算机从内存中往硬盘上write时很爽!但当从硬盘中外内存中read时,要经历磁盘寻道,读的性能会大大降低。
听完恍然大悟!!!
希各位好友评论 指证…(悲催的是今天湖人大败鹈鹕 …哎距快船还有4个胜场国王3个)

### 回答1: 在Python中,列表(list)、元组(tuple)和字符串(string)等数据类型的索引都是从0开始的,而不是从1开始的。这是因为Python的设计者Guido van Rossum认为从0开始的索引更加自然和方便。 从0开始的索引有以下好处: 1. 方便计算:从0开始的索引可以方便地通过取模运算来计算偏移量,这在编写计算机程序时非常常见。 2. 方便实现:从0开始的索引可以使编程语言的实现更加简单而高效。 3. 方便理解:从0开始的索引可以很好地反映出数据的物理存储方式,即第一个元素位于序列的最低地址。 虽然从0开始的索引可能会让初学者感到困惑,但是熟悉后可以带来更高效和方便的编程体验。 ### 回答2: Python的索引值从0开始。 Python采用从0开始的索引值,是因为其底层实现是使用C语言,而C语言中的数组索引也是从0开始的。在设计Python语言时,选择了从0开始的索引值,一方面是为了与C语言保持一致,另一方面是为了简化代码的实现和理解。 从0开始的索引值可以更好地与数学中的序号表示方式对应,例如,元素a的索引为0,元素b的索引为1,依次类推。这种方式更直观地展示了元素在列表中的排列顺序,同时也便于进行计算。 此外,从0开始的索引值还避免了一些常见错误,例如,使用偏移量时,从0开始可以直接使用索引值作为偏移量,而不需要进行减1操作。 总的来说,Python选择从0开始的索引值主要源自其底层实现和简化代码的需要,同时也与数学中的序号表示方式保持一致,使得代码更加清晰和易于理解。 ### 回答3: Python的索引值从0开始,而不是从1开始。这是因为在计算机科学中,数组索引是从0开始的,而不是从1开始的。 历史上,早期的编程语言,比如Fortran和C,都是从0开始进行数组索引。这是因为在计算机内部,数组元素在内存中是连续存储的,每个元素占据一个连续的内存地址。通过使用0作为起始索引,可以更容易地计算数组元素的内存地址。 另外一个原因是简化代码。通过从0开始索引,可以直接使用偏移量来访数组的每个元素,而无需使用复杂的偏移量计算公式。 尽管索引从0开始可能在刚开始学习编程时有些困惑,但是一旦习惯了这种索引方式,它可以带来许多好处。例如,在循环遍历数组或列表时,可以使用简单的循环变量(比如for i in range(len(array)))来访每个元素,而不需要额外的计算或转换。 总结起来,Python选择从0开始索引是为了和其他编程语言保持一致,并且简化代码和内存寻址操作。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值