I went through some of your submissions. I feel that you are using unnecessary loops for taking arrays as inputs. Here is a simple one-liner to input an array of integers:
arr = map(int, raw_input().strip().split())
In case of array of strings, just
arr = raw_input().strip().split() would suffice.
The above code is in Python 2, in case you want to use Python 3, replace raw_input() by input().
But since maps and lists are not the same in Python 3, unlike Python 2, you must convert the map to list, by using
list(arr). Another alternative is using list comprehension, to avoid map. The one liner for list comprehension in Python 3 would be
arr = [int(i) for i in input().strip().split()]
Now, most NZECs for Python on online judges are due to extra whitespaces. To avoid whitespaces, you can use strip almost each time you take an input. I have been doing so without any issues. Now, coming to split() and split(’ ‘), these two aren’t the same. When you use split() i.e without a delimiter, Python considers any amount of consecutive whitespaces as a delimiter, but in case of split(’ ') i.e with a single space as delimiter it considers only single whitespace as a delimiter. You can read more about it here, or refer the python docs.