почему бы просто не присоединиться ко всему списку и проверить:
if "0" not in a + b + c + d:
print("you don't want this to be printing")
и более быстрое решение set
для списков среднего размера, вот некоторые тесты на производительность:
In [1]: from random import randint
...: a = [str(randint(1, 1000)) for _ in range(500)]
...: b = [str(randint(1, 1000)) for _ in range(500)]
...: c = [str(randint(1, 1000)) for _ in range(500)]
...: d = [str(randint(1, 1000)) for _ in range(500)]
...:
In [2]: %timeit "0" not in a + b + c + d
30.2 µs ± 265 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
In [3]: %timeit "0" not in set().union(a, b, c, d)
48.5 µs ± 219 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
но решение с использованием set
сэкономило память, поскольку a + b + c + d
создает новый большой список.