我一直在研究列表理解。所以我决定使用for
循环编写代码,看起来像
babe = 122132323
b = [n for n in babe]
print b
当我运行上面的代码时,它给出了像TypeError: 'int' object is not iterable
我已经研究过这些类似的错误,但我不知道我的代码有什么问题。如果有人告诉我如何克服这个错误并使代码工作,我们将非常感激。
答案 0 :(得分:1)
int
个变量不是sequences
,也不是iterable
。你必须把它变成字符串。
In [60]: babe = '122132323'
In [61]: b = [n for n in babe] #this pick every item from left and store it in `n` then return n.
In [62]: b
Out[62]: ['1', '2', '2', '1', '3', '2', '3', '2', '3']
或简单使用list
内置函数。
[63]: list(babe)
Out[63]: ['1', '2', '2', '1', '3', '2', '3', '2', '3']
答案 1 :(得分:0)
要迭代整数值,您需要n for n in range (babe)
。这告诉Python使用从零到babe-1
的数字作为循环计数器值。假设你想要一个实际的数字,当然......
答案 2 :(得分:0)
您拥有的对象不可迭代的原因是它不是字符串。它是单个数字,即整数。
如果你另一方面,有一个字符串,说
babe = '122132323'
b = [n for n in babe]
print b
会打印
['1', '2', '2', '1', '3', '2', '3', '2', '3']
答案 3 :(得分:0)
您正在寻找n
的哪些值?
1
,2
,2
,1
,3
,2
,3
,2
,3
或
1
,2
,3
,4
,...
,122132323
?
首先需要
[n for n in '122132323']
并且你需要的第二个
n for n in range(babe)]
(或只是list(range(babe))
。