any() and all() on empty list?

Georg Brandl g.brandl-nospam at gmx.net
Thu Mar 30 04:41:21 EST 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.

Georg



More information about the Python-list mailing list