On Sun, Mar 22, 2020 at 09:49:26PM -0700, Guido van Rossum wrote:
> On Sun, Mar 22, 2020 at 6:51 PM Steven D'Aprano <st...@pearwood.info> wrote:
> 
> > We might have a terminology issue here, since according to Wikipedia
> > there is some dispute over whether or not to include the equality case
> > in subset/superset:
> >
> > https://en.wikipedia.org/wiki/Subset
> >
> > For what it is worth, I'm in the school that subset implies proper subset
> > [...]
> >
> 
> Wikipedia's pedantry notwithstanding, I don't think this is a useful
> position *when talking about Python sets*, since Python's set's .issubset()
> method returns True when the argument is the same set:

But Python's subset *operator* returns False when the arguments are 
equal:

    py> {1} < {1}
    False

and until today I did not realise the operator and method used different 
definitions. I'm going to have to review some of my code using sets to 
see if my mistaken understanding that they were the same has introduced 
some hidden bugs :-(

I'm not going to get into an argument about which definition is correct. 
I think the differences between the operators and the methods should be 
better described in the docs, but at least the docs do explicitly note 
that set.issubset is equivalent to the `<=` operator.

(Not the docstring though. You have to read the docs on the website.)

Today I read Wikipedia's pedantry and learned for the first time that 
there are people who define "subset" to include equality. I had not come 
across that before, so I was confused by Steve Jorgensen's talk about 
sets that are similtaneously subsets and supersets of themselves. But 
now that I realise he is talking about *equal* sets, it makes sense.

I'm still confused by his position that there are sets (iterables?) 
which are simultaneously subsets and supersets of each other without 
being equal, but that's a separate issue for him to clarify.


-- 
Steven
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/4CAPJG2EEAYPDQWXJ5PVBXNUZ7GWULER/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to