any() and all() on empty list?
g.brandl-nospam at gmx.net
Thu Mar 30 11:41:21 CEST 2006
Steven D'Aprano wrote:
> Paul Rubin wrote:
>> Steven D'Aprano <steve at REMOVEMEcyber.com.au> writes:
>>>Think of it this way: if all(seq) is true, shouldn't it be the case
>>>that you can point to a specific element in seq that is true?
>> No, all(seq) is true if you can't point to a specific element in seq
>> that's false.
> No, all(seq) is true if every element in seq is true.
> Surely that's a more intuitive definition than your
> definition by what you can't do.
> The question that needs to be answered is, what if
> there are no elements at all? That's an arbitrary
> decision. Like the question "what is 0**0?" in
> mathematics, some answers are more useful than others.
> I can respect that practical answer -- but it isn't the
> *only* answer.
> (For those who don't see why 0**0 is problematic, 0**x
> is equal to 0 for all x, and x**0 is equal to 1 for all
> x, so what do you do for 0**0?)
> Here's another way of looking at the problem:
> all(flying elephants which are pink) => true
> all(flying elephants which are not pink) => true
> So, these flying elephants -- are they pink or not?
No, you ask two different sets whether they are true.
More information about the Python-list