2014-11-01 29 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