1. 程式人生 > >初學python列表

初學python列表

首先我定義了一個列表

 

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()方法來查詢元素在列表中的位置