- Sets are mutable, unordered collections with no duplicate elements.
- Sets can contain any data type.
- Sets are iterable.
- Sets are most often used to quickly dedupe other collections or for membership testing.
- Sets also support mathematical operations like
union
,intersection
,difference
, andsymmetric difference
- The
set()
constructor can take any iterable as an argument. Vectors are iterable. - Remember: Tuples can be formed using
(<element_1>, <element_2>)
.
- A
Set
is disjoint from another set if the two sets share no elements. - The
Set()
constructor can take any iterable as an argument. Vectors are iterable. - Strings can be concatenated with the
*
sign and interpolation can be done via$()
.
- Using loops to iterate through the available meal categories might be useful here.
- If all the elements of
<set_1>
are contained within<set_2>
, then<set_1> ⊆ <set_2>
. - The method equivalent of
⊆
isissubset(<set>, <iterable>)
- Tuples can contain any data type, including other tuples. Tuples can be formed using
(<element_1>, <element_2>)
. - Elements within Tuples can be accessed from the left using a 1-based index number, or from the right using an
end
-based index number (e.g.<tuple>[end]
). - The
Set()
constructor can take any iterable as an argument. Vectors are iterable. - Strings can be concatenated with the
*
sign and interpolation can be done via$()
.
- A set intersection are the elements shared between
<set_1>
and<set_2>
. - The set method equivalent of
∩
isintersect(<set>, <iterable>)
or∩(<set>, <iterable>)
. - Elements within Tuples can be accessed from the left using a 1-based index number, or from the right using an
end
-based index number (e.g.<tuple>[end]
). - The
Set()
constructor can take any iterable as an argument. Vectors are iterable. - Tuples can be formed using
(<element_1>, <element_2>)
.
- A set union is where elements of
<set_1
> and<set_2>
are combined into a singleset
- The set method equivalent of
∪
isunion(<set>, <iterable>)
or∪(<set>, <iterable>)
- Using loops to iterate through the various dishes might be useful here.
- A set difference is where the elements of
<set_2>
are removed from<set_1>
, e.g.setdiff(<set_1>, <set_2>)
. - The
Set()
constructor can take any iterable as an argument. Vectors are iterable. - The Vector constructor can take any iterable as an argument. Sets are iterable.
- A set symmetric difference is where elements appear in
<set_1>
or<set_2>
, but not both sets. - A set symmetric difference is the same as subtracting the
set
intersection from theset
union, e.g.setdiff(<set_1> ∪ <set_2>, <set_1> ∩ <set_2>)
- A symmetric difference of more than two
Sets
will include elements that are repeated more than two times across the inputSets
. To remove these cross-set repeated elements, the intersections between set pairs needs to be subtracted from the symmetric difference. - Using looops to iterate through the various dishes might be useful here.