2014-11-01 46 views
0

這是我有:印刷號[1]從列表

list = [['Alabama','5235'],['Alaska','3453'],['New York','3643']] 

for i in len(list): 
    print(list[i][1]) 

所以,我要的是它在指數僅打印數量[I] [1]在列表中。但我收到以下錯誤:

'int' object no interable 

請幫忙。

回答

2

您有:

for i in len(list): 

len(list)是一個數字。你不能迭代一個數字。

嘗試:

​​
+0

如果你想得到索引&item:''for i,enumerate中的item(['a','b']):' – Carpetsmoker 2014-11-01 21:31:03

3

修改代碼,以便它是這樣的:

for item in list: 
    print(item[1]) 

,它會工作。


你目前所得到的是錯誤的事實,你想遍歷一個數字,它沒有長度的列表 - 的長度,因此不會造成工作。作爲證據,請注意,通過迭代range(len(list))可以修復您的代碼。

+0

這是可行的,但不是OP的標準多維數組的。 – 2014-11-01 21:29:17

+0

@SterlingArcher你是什麼意思? – 2014-11-01 21:31:19

+0

OP希望'item [i] [1]',而不是'item [1]'(爲什麼要打印出item [1]'len(list)'次打印出完全相同的數組索引?) – 2014-11-01 21:32:15

0

len()函數返回一個整數,這是不可迭代。您需要修改for循環使用range()還有:

list = [['Alabama','5235'],['Alaska','3453'],['New York','3643']] 

for i in range(len(list)): 
    print(list[i][1]) 

我也建議不要調用列表list,因爲它已經作爲built-in function的名稱。

0

嘗試

list = [['Alabama','5235'],['Alaska','3453'],['New York','3643']] 

for i in range(0,len(list)): 
    print(list[i][1]) 
+0

請注意,'0'參數是在這種情況下'range()'函數是[不是必需的](https://docs.python.org/2/library/functions.html#range) - 儘管它肯定沒有任何傷害。 – GoBusto 2014-11-01 21:34:40

+0

是的,我知道但我認爲更快理解:) – LucaLumetti 2014-11-01 21:37:12