HOWTO · Python
修復 Python Int Object Is Not Iterable 錯誤
如何修復'int'物件不是 Python 中的可迭代錯誤
此錯誤本身是不言自明的。 'int' object is not iterable,它清楚地表明你不能在整數上執行迭代。整數是單個數字,而不是可迭代的列表。讓我們看一些例子。
修復 Python 中的 'int' object is not iterable 錯誤
任何返回或儲存整數的東西都是不可迭代的。這是常識。如果你不熟悉它,讓我們瞭解一下 python 中的迭代。迭代可以在列表上完成,而不是在整數上。例如,你不能在整數上執行迴圈進行迭代;這沒有任何意義。看看下面的程式碼。
# integer
number = 123
# loop over an integer
for i in number:
print(i)
執行上面的程式碼會給你同樣的錯誤,你試圖避免。在上面的程式碼中,number 是一個具有單個值 123 的整數。你不能在它上面執行一個迴圈。如果你對資料型別及其相關功能感到困惑,你可以通過查詢魔術方法輕鬆解決它。在這種情況下,我們將使用一個整數。看一看。
# integer
number = 123
# built-in / magic methods of an integer
print(dir(number))
上述程式碼的輸出將如下所示。
[
"__abs__",
"__add__",
"__and__",
"__class__",
"__cmp__",
"__coerce__",
"__delattr__",
"__div__",
"__divmod__",
"__doc__",
"__float__",
"__floordiv__",
"__format__",
"__getattribute__",
"__getnewargs__",
"__hash__",
"__hex__",
"__index__",
"__init__",
"__int__",
"__invert__",
"__long__",
"__lshift__",
"__mod__",
"__mul__",
"__neg__",
"__new__",
"__nonzero__",
"__oct__",
"__or__",
"__pos__",
"__pow__",
"__radd__",
"__rand__",
"__rdiv__",
"__rdivmod__",
"__reduce__",
"__reduce_ex__",
"__repr__",
"__rfloordiv__",
"__rlshift__",
"__rmod__",
"__rmul__",
"__ror__",
"__rpow__",
"__rrshift__",
"__rshift__",
"__rsub__",
"__rtruediv__",
"__rxor__",
"__setattr__",
"__sizeof__",
"__str__",
"__sub__",
"__subclasshook__",
"__truediv__",
"__trunc__",
"__xor__",
"bit_length",
"conjugate",
"denominator",
"imag",
"numerator",
"real",
]
如你所見,你在上面的列表中找不到迭代器方法。讓我們看看列表有什麼不同。
# list
lst = [1, 2, 3]
# loop over a list
for j in lst:
print(j)
# built-in /magic methods of a list
print(dir(lst))
上面的程式碼不會給出任何錯誤。你可以遍歷列表。如果你執行上述程式碼,你還會注意到其中的 _iter_ 函式,說明你可以在列表上使用迭代。