Читать книгу Python One-Liners - Christian Mayer - Страница 39

Eindeutig

Оглавление

Alle Elemente in der Menge müssen eindeutig sein. Formell ausgedrückt heißt dies, dass zwei Werte x, y in der Menge mit x!=y unterschiedliche Hash-Werte haben: hash(x)!=hash(y). Da die zwei Elemente x und y in der Menge jeweils verschieden sind, können Sie keine Armee aus Harry-Potter-Klonen herstellen, um Lord V. zu bekämpfen:

clone_army = {hero, hero, hero, hero, hero, enemy}

print(clone_army)

# {'Lord V.', 'Harry'}

Egal, wie oft Sie denselben Wert in dieselbe Menge packen, die Menge speichert nur eine Instanz dieses Werts. Das liegt daran, dass diese Helden denselben Hash-Wert besitzen und eine Menge höchstens ein Element pro Hash-Wert enthalten darf. Eine Erweiterung der normalen Set-Datenstruktur ist die Multiset-Datenstruktur, die mehrere Instanzen desselben Werts speichern kann. Allerdings wird sie in der Praxis selten verwendet. Im Gegensatz dazu kommen Mengen in fast jedem nicht trivialen Codeprojekt vor – etwa um eine Menge von Kunden mit einer Menge von Personen zu kreuzen, die einen Laden besucht haben, wodurch eine neue Menge an Kunden zurückgeliefert wird, die auch den Laden besucht haben.

Python One-Liners

Подняться наверх