I am writing a code to determine if every element in my nxn list is the same. i.e. [[0,0],[0,0]] returns true but [[0,1],[0,0]] will return false. I was thinking of writing a code that stops immediately when it finds an element that is not the same as the first element. i.e:
n=L m=len(A) for i in range(m): for j in range(m): if L[i][j]==n: -continue the loop- else: -stop the loop-
I would like to stop this loop if
L[i][j]!==n and return false. otherwise return true. How would I go about implementing this?
continue to do this. Breaking nested loops can be done in Python using the following:
for a in range(...): for b in range(..): if some condition: # break the inner loop break else: # will be called if the previous loop did not end with a `break` continue # but here we end up right after breaking the inner loop, so we can # simply break the outer loop as well break
Another way is to wrap everything in a function and use
return to escape from the loop.
There are several ways to do it:
n = L m = len(A) found = False for i in range(m): if found: break for j in range(m): if L[i][j] != n: found = True break
Pros: easy to understand Cons: additional conditional statement for every loop
n = L m = len(A) try: for x in range(3): for z in range(3): if L[i][j] != n: raise StopIteration except StopIteration: pass
Pros: very straightforward Cons: you use Exception outside of their semantic
def is_different_value(l, elem, size): for x in range(size): for z in range(size): if l[i][j] != elem: return True return False if is_different_value(L, L, len(A)): print "Doh"
pros: much cleaner and still efficient cons: yet feels like C
def is_different_value(iterable): first = iterable for l in iterable: for elem in l: if elem != first: return True return False if is_different_value(L): print "Doh"
pros: still clean and efficient cons: you reinvdent the wheel
def is_different_value(iterable): first = iterable return any(any((cell != first for cell in col)) for elem in iterable)): if is_different_value(L): print "Doh"
pros: you'll feel empowered with dark powers cons: people that will read you code may start to dislike you