How to Fix Python TypeError: int object is not iterable

The TypeError: 'int' object is not iterable occurs when you try to iterate over an integer as if it were a list, tuple, or other iterable objects. This can happen in various situations, such as in a for-loop, list comprehension, or when using functions that expect an iterable.

Here are some common scenarios and how to fix them:

For-loop or list comprehension:

  • Problem: Attempting to iterate over an integer directly.
  • Solution: Ensure you are iterating over an iterable object like a list or range.
# Incorrect
num = 10
for i in num:
    print(i)

# Correct
num = 10
for i in range(num):
    print(i)

Using an integer as an argument to a function expecting an iterable:

  • Problem: Passing an integer to a function that expects an iterable.
  • Solution: Pass an appropriate iterable.
# Incorrect
num = 5
sum_result = sum(num)

# Correct
num = 5
sum_result = sum(range(num + 1))

This will result in a TypeError because integers are not iterable objects.

Nested structures:

  • Problem: Working with nested data structures and accidentally treating an integer as a list.
  • Solution: Ensure correct indexing or data manipulation to avoid treating integers as iterables.
# Incorrect
nested_list = [1, 2, [3, 4]]
for sublist in nested_list:
    for item in sublist:
        print(item)

# Correct
nested_list = [1, 2, [3, 4]]
for sublist in nested_list:
    if isinstance(sublist, list):
        for item in sublist:
            print(item)
    else:
        print(sublist)

Function arguments:

  • Problem: Passing an integer where a function expects an iterable.
  • Solution: Wrap the integer in an iterable like a list or tuple.
def process_elements(elements):
    for element in elements:
        print(element)

# Incorrect
num = 7
process_elements(num)

# Correct
num = 7
process_elements([num])

Example of the [typeerror: int object is not iterable ] and Its Fix

Example of the error:

# Incorrect code
def multiply_elements(elements):
    result = 1
    for element in elements:
        result *= element
    return result

num = 6
print(multiply_elements(num))

How to Fix the typeerror: int object is not iterable

# Correct code
def multiply_elements(elements):
    result = 1
    for element in elements:
        result *= element
    return result

num = 6
print(multiply_elements([num]))

By wrapping num in a list ([num]), we provide an iterable to the function multiply_elements.

To fix this error, you should check your code and ensure that you are not trying to use an integer as an iterable in a loop or another operation that requires an iterable object.

Here are some steps to fix the “TypeError: int object is not iterable” error:

  1. Check your code to identify where you are trying to iterate over an integer value.
  2. Make sure that you are using the correct data type for iteration. If you need to iterate over a range of values, use the range() function instead of an integer.
  3. If you are trying to iterate over elements of a list or another iterable object, make sure that you are accessing the elements correctly.
  4. If you are still having trouble fixing the error, consider sharing your code with others for help or seeking assistance from a programming community.

By following these steps, you should be able to fix the “TypeError: int object is not iterable” error in your code.

Stephen Mclin
Stephen Mclin

Hey, I'm Steve; I write about Python and Django as if I'm teaching myself. CodingGear is sort of like my learning notes, but for all of us. Hope you'll love the content!

Articles: 90

Leave a Reply

Your email address will not be published. Required fields are marked *