TypeError: argument of type 'int' is not iterable

Here c is the index not the list that you are searching. Since you cannot iterate through an integer, you are getting that error.

>>> myList = ['a','b','c','d']
>>> for c,element in enumerate(myList):
...     print c,element
... 
0 a
1 b
2 c
3 d

You are attempting to check if 1 is in c, which does not make sense.


Based on the OP's comment It should print "t" if there is a 0 in a row and there is not a 1 in the row.

change if 1 not in c to if 1 not in row

for c, row in enumerate(matrix):
    if 0 in row:
        print("Found 0 on row,", c, "index", row.index(0))
        if 1 not in row: #change here
            print ("t")

Further clarification: The row variable holds a single row itself, ie [0, 5, 0, 0, 0, 3, 0, 0, 0]. The c variable holds the index of which row it is. ie, if row holds the 3rd row in the matrix, c = 2. Remember that c is zero-based, ie the first row is at index 0, second row at index 1 etc.

Tags:

Python