A set object is an unordered collection of distinct (\ldots) objects. Common uses include membership testing, removing duplicates from a sequence, and computing mathematical operations such as intersection, union, difference, and symmetric difference. (\ldots)
Like other collections, sets support \verb!x in set!, \verb!len(set)!, and \verb!for x in set!. Being an unordered collection, sets do not record element position or order of insertion. Accordingly, sets do not support indexing, slicing, or other sequence-like behavior.
There are currently two built-in set types, \verb!set! and \verb!frozenset!. The set type is mutable — the contents can be changed using methods like \verb!add()! and \verb!remove()!. Since it is mutable, it has no hash value and cannot be used as either a dictionary key or as an element of another set. The frozenset type is immutable and hashable — its contents cannot be altered after it is created; it can therefore be used as a dictionary key or as an element of another set.
Non-empty sets (not frozensets) can be created by placing a comma-separated list of elements within braces, for example: \verb!{'jack', 'sjoerd'}!, in addition to the set constructor.
\end{framed}
Instances of \verb!set! and \verb!frozenset! provide the following operations:
\begin{tabular}{lp{10cm]}
\hline
set([iterable]) &
Constructor \\
\hline
len(s) &
Return the number of elements in set s (cardinality of s). \\
\hline
x in s &
Test x for membership in s. \\
\hline
x not in s &
Test x for non-membership in s. \\
isdisjoint(other) &
Return True if the set has no elements in common with other. Sets are disjoint if and only if their intersection is the empty set. \\
\hline
issubset(other) \newline
set <= other &
Test whether every element in the set is in other. \\
\hline
set < other &
Test whether the set is a proper subset of other, that is, set <= other and set != other. \\
\hline
issuperset(other) \newline
set >= other &
Test whether every element in other is in the set. \\
\hline
set > other &
Test whether the set is a proper superset of other, that is, set >= other and set != other. \\
\hline
union(*others) \newline
set | other | ... &
Return a new set with elements from the set and all others. \\
\hline
intersection(*others) \newline
set \& other \& ... &
Return a new set with elements common to the set and all others. \\
\hline
difference(*others) \newline
set - other - ... &
Return a new set with elements in the set that are not in the others. \\
\hline
symmetric_difference(other) \newline
set ^ other &
Return a new set with elements in either the set or other but not both. \\
\hline
copy() &
Return a shallow copy of the set. \\
\hline
%Note, the non-operator versions of union(), intersection(), difference(), and symmetric_difference(), issubset(), and issuperset() methods will accept any iterable as an argument. In contrast, their operator based counterparts require their arguments to be sets. This precludes error-prone constructions like set('abc') & 'cbs' in favor of the more readable set('abc').intersection('cbs').
%
%Both set and frozenset support set to set comparisons. Two sets are equal if and only if every element of each set is contained in the other (each is a subset of the other). A set is less than another set if and only if the first set is a proper subset of the second set (is a subset, but is not equal). A set is greater than another set if and only if the first set is a proper superset of the second set (is a superset, but is not equal).
%
%Instances of set are compared to instances of frozenset based on their members. For example, set('abc') == frozenset('abc') returns True and so does set('abc') in set([frozenset('abc')]).
%
%The subset and equality comparisons do not generalize to a total ordering function. For example, any two nonempty disjoint sets are not equal and are not subsets of each other, so all of the following return False: a<b, a==b, or a>b.
%
%Since sets only define partial ordering (subset relationships), the output of the list.sort() method is undefined for lists of sets.
%
%Set elements, like dictionary keys, must be hashable.
%
%Binary operations that mix set instances with frozenset return the type of the first operand. For example: frozenset('ab') | set('bc') returns an instance of frozenset.
&
The following table lists operations available for set that do not apply to immutable instances of frozenset: \\
\hline
update(*others) \newline
set |= other | ... &
Update the set, adding elements from all others. \\
\hline
intersection_update(*others) \newline
set \&= other \& ... &
Update the set, keeping only elements found in it and all others. \\
\hline
difference_update(*others) \newline
set -= other | ... &
Update the set, removing elements found in others. \\
\hline
symmetric_difference_update(other) \newline
set ^= other &
Update the set, keeping only elements found in either set, but not in both. \\
\hline
add(elem) &
Add element elem to the set. \\
\hline
remove(elem) &
Remove element elem from the set. Raises KeyError if elem is not contained in the set. \\
\hline
discard(elem) &
Remove element elem from the set if it is present. \\
\hline
pop() &
Remove and return an arbitrary element from the set. Raises KeyError if the set is empty. \\
\hline
clear() &
Remove all elements from the set. \\
\hline
&
Note, the non-operator versions of the update(), intersection_update(), difference_update(), and symmetric_difference_update() methods will accept any iterable as an argument. \\
\hline
&
Note, the elem argument to the __contains__(), remove(), and discard() methods may be a set. To support searching for an equivalent frozenset, a temporary one is created from elem. \\
\hline
\end{tabular}
\section{Fragen}
\begin{enumerate}
\item
Welchen mathematischen Rechenoperationen entsprechen die folgenden Codezeilen?
\item
Bei welchen der Funktionen hat der Rückgabewert der Python-Funktion dieselbe Bedeutung
wie in der Mathematik?
\item
Welche der Rechenoperationen haben in der Mathematik streng genommen eine andere Bedeutung?