Int对象不可迭代

时间:2014-12-01 12:32:57

标签: python

我一直在研究列表理解。所以我决定使用for循环编写代码,看起来像

babe = 122132323
b = [n for n in babe]
print b

当我运行上面的代码时,它给出了像TypeError: 'int' object is not iterable

这样的错误

我已经研究过这些类似的错误,但我不知道我的代码有什么问题。如果有人告诉我如何克服这个错误并使代码工作,我们将非常感激。

4 个答案:

答案 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的哪些值?

122132323

1234...122132323

首先需要

[n for n in '122132323']

并且你需要的第二个

n for n in range(babe)]

(或只是list(range(babe))