Set Comparison Operators

Therera re a number of set comparisons. All of the standard comparisons (<, <=, >, >=, ==, !=, in , not in ) work with sets, but the interpretation of the operators is based on set theory. For example, the comparisons determine if we have subset or superset (<=, >=) relationships between two sets.

The basic in and not in operators are the basic membership tests. For example, the set craps is all of the ways we can roll craps on a come out roll. We've modeled a throw of the dice as a 2-tuple. We can now test a specific throw to see if it is craps.

>>> 
craps= set( [ (1,1), (2,1), (1,2), (6,6) ] )

>>> 
(1,2) in craps

True
>>> 
(3,4) in craps

False

The ordering operators (<, <=, >, >=) comoare two sets to determine their superset or subset relationship. These operators reflect the two definitions of subset (and superset). S1 is a subset of S2 if every element of S1 is in S2. The basic subset test is the <= operator; it says nothing about "extra" elements in S2. S1 is a proper subset of S2 if every element of S1 is in S2 and S2 has at least one additional element, not in S1. The proper subset test is the < operator.

Here we've defined three to hold both of the dice rolls that total 3. When we compare three with craps, we see the expected relationships: three is a subset craps as well as a proper subset of craps.

>>> 
three= set( [ (2,1), (1,2) ] )

>>> 
three < craps

True
>>> 
three <= craps

True
>>> 
craps <= craps

True
>>> 
craps < craps

False

We can also see that any given set is a subset of itself, but is never a proper subset of itself.