checking if a list is empty
harrismh777
harrismh777 at charter.net
Sun May 8 23:33:11 EDT 2011
Steven D'Aprano wrote:
>> which is irony extreme since 'not' is typically considered a logical
>> > operator.
> Because "not" is typically used as a logical operator.
>
> In English, it negates a word or statement:
>
> "the cat is not on the mat" --> "the cat is on the mat" is false.
Your pedantic bogus cat analogy talks past my point entirely, as
well as making you look silly... if you would stop being pedantic long
enough to think about what I'm saying you might come to some
understanding...
... yes, 'not' is a logical negation. Why would you waste time with a
pedantic explanation of 'not' ? Wait--- its a rhetorical question...
Why should the negation of a list imply that the list empty? ...
nor any other abstract condition which is not well suited to 'not' ?
(forget python for a moment... then move on to my argument...)
What made the python development team (or individual) decide that
the logical construct 'not list' would return True if the list is
empty? To say that "This is the way we do it in Python because Python
does it this way"--- goes beyond pedantic becoming circular and redundant.
On the other hand, if you were to tell me *why* you think that the
logical construct 'not list' should be logically True when the list is
empty--- when clearly negating a list would not necessarily mean to make
the list empty (including destroying it)... then you might be seeing my
point.
Here's the bottom line you missed...
... although syntactically correct, the following test is not a logical
construct that makes sense (except for the syntactically initiated):
if not list <===== this makes no logical sense...
... to test for an empty list . . .
... although, it is legal syntax. :-}
I know that is the way Python does it... I've been coding it that
way for a long time... but that doesn't answer my concern....
To say this another way, IMHO,
if not list
... should return True only if 'list' is bound to NULL, or if
the name 'list' would throw a name exception...
... and, Python should have an explicit way of testing for an
empty list that is clear, concise, and easy to understand even for the
relatively new Python programmer. This is not intended to generate
counter argument, its just my feedback on a language construct that I
find to be inconsistent logically. ... Please, no pedantic discourse
explaining why I'm wrong... just put in into a PEP and move on. :)
kind regards,
m harris
More information about the Python-list
mailing list