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