"in"consistency?

Terry Reedy tjreedy at udel.edu
Tue Jul 8 21:25:47 CEST 2008



castironpi wrote:

> Strings are not containers.

Library Reference/Built-in Types/Sequence Types says
"Strings contain Unicode characters."
Perhaps you have a different notion of contain/container.

I prefer 'collection' to 'container' since 'container' tends to imply an 
exclusiveness that is not true.  Byte/character sequences *are* 
different from tuples, lists, sets, dicts, etc, in the following sense: 
members of the latter collection classes must exist first before being 
added to the collection (non-exclusively).  Members of the former do 
not.  (In CPython, at least, they do not).  So I consider them to 
(reiterable) *virtual* sequence collections that can produce 
subsequences on demand,

So I partially agree with you in that byte/char sequences are a 
different sub-category.

> Another container type:
> 
> Python 3.0b1 on win32
>>>> {0} in {0,1}
> False

And similarly, (0,) not in (0,1), [0] not in [0,1], {0:None} not in 
{0:None,1:None).  These are all general manifest collection types that 
can contain any Python object, and which could contain a sub-collection 
even if they do not.

Terry Jan Reedy




More information about the Python-list mailing list