Python初学者8号 发表于 2021-2-9 13:15:36

列表的索引问题!!

本帖最后由 Python初学者8号 于 2021-2-9 15:05 编辑

我在写程序的时候我发现很奇怪的现象:索引问题。
话不多说直接上代码
l = []
for i in range(6):#i = 0 1 2 3 4 5
      l.append(i*10)
      print('l = ',l)
      print(l,l)


结果是:
0
10
30
50
70
90


这里面,发生了很奇怪的事情:         在i = 0的时候,先执行的是 l.append(i*10),他的结果是让空列表l产生第一个元素l = 0
         在执行第二句的时候,是打印出l和l。这个时候神器的事情出现了!!按道理这时候l只有一个元素l(也就是0),但是这里却没有报错出现了结果为0!!!      而且在执行最后的时候 i = 5,这时候不是l不是也应该超出索引了吗???



我反手写了另一个代码:
for i in range(6):#i = 0 1 2 3 4 5
      l.append(i*10)
      print('l = ',l)
      print(l,l)

运行的结果居然是
#运行的结果是
l =
Traceback (most recent call last):
File "<pyshell#50>", line 4, in <module>
print(l,l)
IndexError: list index out of range

这真是牛逼他妈给牛逼开门,牛逼到家了,我是没搞懂咋回事,有没有大佬给看看!!{:5_105:}

昨非 发表于 2021-2-9 13:21:30

当i=5时
      print(l,l)后一个索引值为6,越界了

hrp 发表于 2021-2-9 13:33:14

#运行的结果是
l =
Traceback (most recent call last):
File "<pyshell#50>", line 4, in <module>
print(l,l)
IndexError: list index out of range

问题不是很明显么,l=,l是0,l是什么?列表只有一个元素,你要它第二个元素,哪来第二个?索引越界了啊

逃兵 发表于 2021-2-9 14:05:36

最开始写的代码是啥

Python初学者8号 发表于 2021-2-9 15:04:31

我明明补充代码了,怎么还显示不出来呢?奇怪了,我有问题的代码是这样的:
for i in range(6):#i = 0 1 2 3 4 5
      l.append(i*10)
      print('l = ',l)
      print(l+l)

Python初学者8号 发表于 2021-2-9 15:05:26

逃兵 发表于 2021-2-9 14:05
最开始写的代码是啥

补充了

Python初学者8号 发表于 2021-2-9 15:07:47

hrp 发表于 2021-2-9 13:33
问题不是很明显么,l=,l是0,l是什么?列表只有一个元素,你要它第二个元素,哪来第二个?索引 ...

补充了

逃兵 发表于 2021-2-9 15:21:21

Python初学者8号 发表于 2021-2-9 15:05
补充了

你提供的代码,没有能跑出来结果为以下的
0
10
30
50
70
90

Python初学者8号 发表于 2021-2-9 15:41:22

hrp 发表于 2021-2-9 13:33
问题不是很明显么,l=,l是0,l是什么?列表只有一个元素,你要它第二个元素,哪来第二个?索引 ...

补充了 ,大哥再看看

李宜文1 发表于 2021-2-9 18:38:46

第一次l.append('')后,
l的值是
最大索引是0,但i第一次是0i+1是1,超出了最大索引限制
每一次循环都是这样

Python初学者8号 发表于 2021-2-9 18:49:45

李宜文1 发表于 2021-2-9 18:38
第一次l.append('')后,
l的值是
最大索引是0,但i第一次是0i+1是1,超出了最大索引限制


我的意思是,第一次循环i=1的时候,l+l居然没有报错,这不合理啊

Python初学者8号 发表于 2021-2-9 18:50:15

逃兵 发表于 2021-2-9 15:21
你提供的代码,没有能跑出来结果为以下的

大哥,我代码搞错了,帮我再看看{:10_277:}

Python初学者8号 发表于 2021-2-9 19:17:48

hrp 发表于 2021-2-9 13:33
问题不是很明显么,l=,l是0,l是什么?列表只有一个元素,你要它第二个元素,哪来第二个?索引 ...

大哥,我代码搞错了,帮我再看看

Python初学者8号 发表于 2021-2-9 19:31:21

昨非 发表于 2021-2-9 13:21
当i=5时
      print(l,l)后一个索引值为6,越界了

大哥,我代码搞错了,帮我再看看

昨非 发表于 2021-2-9 22:02:50

Python初学者8号 发表于 2021-2-9 19:31
大哥,我代码搞错了,帮我再看看

你原来的代码就有问题啊!
不管i等于几,索引里有l必定越界啊

Python初学者8号 发表于 2021-2-10 09:27:22

昨非 发表于 2021-2-9 22:02
你原来的代码就有问题啊!
不管i等于几,索引里有l必定越界啊

我晓得了,是因为我在idle里面测试的,我在sublime测试是错的,估计是shell的问题,感谢大家

昨非 发表于 2021-2-12 16:09:22

Python初学者8号 发表于 2021-2-10 09:27
我晓得了,是因为我在idle里面测试的,我在sublime测试是错的,估计是shell的问题,感谢大家

解决了楼主记得结帖

Python初学者8号 发表于 2021-2-12 21:21:58

昨非 发表于 2021-2-12 16:09
解决了楼主记得结帖

谢谢
页: [1]
查看完整版本: 列表的索引问题!!