Если вы посмотрите на документы: https://docs.python.org/3/library/functions.html#all
все (повторяемые).
Верните True, если все элементы итерируемого являются истинными (или если итерируемое пусто). Эквивалентно:
def all(iterable):
for element in iterable:
if not element:
return False
return True
Так if all(x % 2 == 1 for x in li):
примерно переводится как
def are_all_odds(num_list):
#Flag to keep track if we encounter an even number
flag = True
for num in num_list:
#Once we encounter a even number, we break the for loop
if num % 2 != 1:
flag = False
break
#Return the flag
return flag
Мы можем проверить эту функцию, выполнив
print(are_all_odds([1, 2, 3, 4]))
#False
print(are_all_odds([1, 3, 5]))
#True
Также просто предложение, list
- это встроенное ключевое слово python, поэтому не используйте его в переменных:)