Я пытаюсь понять, как работают встроенные функции any()
и all()
Python.
Я пытаюсь сравнить кортежи, чтобы, если какое-либо значение отличается, оно возвращает True
, и если они все равно, он вернет False
. Как они работают в этом случае для возврата [False, False, False]?
d
является defaultdict(list)
.
print d['Drd2']
# [[1, 5, 0], [1, 6, 0]]
print list(zip(*d['Drd2']))
# [(1, 1), (5, 6), (0, 0)]
print [any(x) and not all(x) for x in zip(*d['Drd2'])]
# [False, False, False]
Насколько мне известно, это должно выводить
# [False, True, False]
так как (1,1) совпадают, (5,6) различны и (0,0) совпадают.
Почему он вычисляет False для всех кортежей?