"""
all(iterable)
Return True if all elements of the iterable are true (or if the iterable is
empty). Equivalent to:
def all(iterable):
for element in iterable:
if not element:# if element is zero returns False
return False
return True
"""
если у вас есть «0» (нули в вашем иттерре), вы получите False, когда используете все.
итерс с нулями
l = [ x for x in range(10)]
l1 = range(10)
g = (x for x in range(10))
d = {k: v for k, v in zip(range(10), range(10)) }
t = tuple(l)
s = set(l)
for i in [ l , l1, g , d , t , s]:
print(type(i), i , "is iter " , all(i))
Out out:
<class 'list'> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] is iter False
<class 'range'> range(0, 10) is iter False
<class 'generator'> <generator object <genexpr> at 0x102a7d938> is iter False
<class 'dict'> {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9} is iter False
<class 'tuple'> (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) is iter False
<class 'set'> {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} is iter False
итераций без нулей
l = [ x for x in range(1, 10)]
l1 = range(1, 10)
g = (x for x in range(1, 10))
d = {k: v for k, v in zip(range(1, 10), range(1, 10)) }
t = tuple(l)
s = set(l)
for i in [ l , l1, g , d , t , s]:
print(type(i), i , "is iter " , all(i))
Out out:
<class 'list'> [1, 2, 3, 4, 5, 6, 7, 8, 9] is iter True
<class 'range'> range(1, 10) is iter True
<class 'generator'> <generator object <genexpr> at 0x102a7d938> is iter True
<class 'dict'> {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9} is
iter True
<class 'tuple'> (1, 2, 3, 4, 5, 6, 7, 8, 9) is iter True
<class 'set'> {1, 2, 3, 4, 5, 6, 7, 8, 9} is iter True