码迷,mamicode.com
首页 > 编程语言 > 详细

初学python列表

时间:2018-11-03 14:06:47      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:pen   mil   style   位置   font   class   ble   int   err   

首先我定义了一个列表

 

a = [2,3,3,5,6,7,9]  

 

我想对列表a 的每个值都加一,哈,脑子里顿时闪过一道光

 

①首先我想到的是用for 循环来进行加一,即以下代码

 

a = [2,3,3,5,6,7,9]
print(a,type(a))
for i in a:

    a[i] = a[i]+1
print(a)

 

但是运行的时候报错了,错误如下:

a[i] = a[i]+1

IndexError: list index out of range

怎么会出错呢?看了一下错误原来是自己有点**而造成索引越界了;当for第一次循环的时候 i = 2(列表a的第一个值,从第一个值循环输出a各个元素赋给i),a[i] = a[2] = 3 + 1 =4  此时列表a = [2,3,4,5,6,7,9];第二次循环的时候 i = 3,a[i] = a[3] = 5 + 1 =6  此时列表a = [2,3,4,6,6,7,9];第三次 i = 4,a[i] =a[4] = 6 + 1 = 7   此时列表 a = [2,3,4,6,7,7,9]第四次循环的是时候 i = 6,a[i] = a[6] = 9 + 1 = 10 此时列表 a = [2,3,4,6,7,710]第五次的时候 i = 7,a[i] = a[7]  可以看到列表a最大为 a[6],所以a[7] 就会造成索引越界。

 

 

②第二次则想自己给他加一个索引不就好了,本着**到底的原则,就有了以下错误

 

a = [2,3,3,5,6,7,9]
print(a,type(a))
for index,i in a:
    a[index] = a[index]+1
print(a)

 

运行以上代码时出现了以下错误;

for index,i in a:

TypeError: ‘int‘ object is not iterable

 

错误提示说 ‘int’ 对象不可以迭代。此时我 ???

 

 

③这还不行,那把列表a变成枚举类型试一下吧:

a = [2,3,3,5,6,7,9]
print(a,type(a))
for index,i in enumerate(a):                                                                         
    a[index] = a[index]+1
print(a)

 

输出如下:

[2, 3, 3, 5, 6, 7, 9] <class ‘list‘>

[3, 4, 4, 6, 7, 8, 10]

~~~,可以输出了.

 

唉,心累,学个列表都没学好,赶紧回去看一下知识:

列表可以通过索引下标来取出、修改、删除列表中的值,但是不能通过索引下标来向列表中增加值。

要想增加值,可以调用append()方法来追加,或者调用insert()方法来插入

另外可以调用index()方法来查找元素在列表中的位置

 

初学python列表

标签:pen   mil   style   位置   font   class   ble   int   err   

原文地址:https://www.cnblogs.com/lanser/p/9900329.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!