Python erstellen Wörterbuch Schlüssel aus einer Liste von Elementen

Ich möchte ein PythonWörterbuch verwenden, um einige laufende Aufgaben zu verfolgen. Jede dieser Aufgaben hat eine Reihe von Attributen, die es einzigartig macht, also möchte ich eine Funktion dieser Attribute verwenden, um die Wörterbuchschlüssel zu generieren, damit ich sie im Wörterbuch wieder finden kann, indem du dieselben Attribute verwende; So etwas wie folgendes:

class Task(object): def __init__(self, a, b): pass #Init task dictionary d = {} #Define some attributes attrib_a = 1 attrib_b = 10 #Create a task with these attributes t = Task(attrib_a, attrib_b) #Store the task in the dictionary, using a function of the attributes as a key d[[attrib_a, attrib_b]] = t 

Offensichtlich funktioniert das nicht (die Liste ist veränderlich und kann daher nicht als Schlüssel verwendet werden ( "unschuldig Typ: Liste" )) – also was ist die kanonische Art, einen eindeutigen Schlüssel aus mehreren bekannten Attributen zu generieren?

  • Python: Suchen eines (String) -Taste in einem Wörterbuch, das einen Teilstring enthält
  • Nehmen Sie Elemente des Wörterbuchs, um ein anderes Wörterbuch zu erstellen
  • Umbenennen eines Wörterbuchschlüssels
  • Ersetzen Sie Elemente in einer Liste mit einem Wörterbuch
  • Ntk words corpus enthält nicht "okay"?
  • Python: Collections.Counter vs defaultdict (int)
  • Python - JSON Last aus Datei funktioniert nicht
  • Konvertieren Sie pandas dataframe von Listen, um von dataframes zu datieren
  • 2 Solutions collect form web for “Python erstellen Wörterbuch Schlüssel aus einer Liste von Elementen”

    Verwenden Sie ein Tupel anstelle der Liste. Tupel sind unveränderlich und können als Wörterbuchschlüssel verwendet werden:

     d[(attrib_a, attrib_b)] = t 

    Die Klammern können weggelassen werden:

     d[attrib_a, attrib_b] = t 

    Jedoch scheinen einige Leute diese Syntax nicht zu mögen.

    Verwenden Sie ein Tupel

     d[(attrib_a, attrib_b)] = t 

    Das sollte gut funktionieren

    Python ist die beste Programmiersprache der Welt.