Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python 3.4 TypeError: argument of type 'int' is not iterable

Tags:

python

arrays

I have an array where each position in the array represents a parking spot. The value of each position in the array (or parking lot) represents what is in the parking spot (car, motorcycle, etc.). The showSpots function should show all of the spots a certain vehicle is in. For example, showSpots(CAR) (where CAR = 1) should show all of the spots (or positions in the array) that hold the value 1.

However, when I run the code, I get a 'TypeError: argument of type 'int' is not iterable' on the line 'if holder in parkingLot[x]:'

Why am I getting this error, and how do I fix it?

My code:

from random import *

parkingLot = [0, 1, 0, 2, 0, 0, 1]

EMPTY = 0
CAR = 1
MOTORCYCLE = 2

def showSpots(holder):
    for x in range(0, 6):
        if holder in parkingLot[x]:
            print(x)

def main():
    print("There are cars in lots:")
    showSpots(CAR)
    print("There are motorcycles in lots:")
    showSpots(MOTORCYCLE)

main()
like image 790
zbalda Avatar asked Feb 09 '23 16:02

zbalda


1 Answers

I think you want if holder == parkingLot[x]:. By doing in, Python is trying to iterate through parkingLot[x] and check if holder is in it. Obviously, since you can't do list(1), then an error is raised.

like image 68
TerryA Avatar answered Feb 15 '23 11:02

TerryA