Python Int Object Is Not Iterable エラーの修正

Haider Ali 2023年10月10日
Python Int Object Is Not Iterable エラーの修正

このエラー自体は自明です。 'int' object is not iterable、それは整数で反復を実行できないことを明確に言っています。整数は 1 桁であり、反復可能なリストではありません。いくつかの例を見てみましょう。

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_ 関数があり、リストで反復を使用できることを示しています。

著者: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

関連記事 - Python Error