2012-04-14 7 views
0

mir eine Funktion definiereneinen Eingang Wörterbuch in Python zu aktualisieren

def update(dictionary,key,value): 
    dictionary[key] = value 
    # if i do print dictionary... it still shows the original value? 

I

Also das ist die Hauptfunktion i schrieb das Eingang Wörterbuch im Haupt Aufruf aktualisiert werden soll:

def update_mapping(mapping_dict,check_word,solution_word): 
    #print "here " 
    #new_mapping_dict = {} 
    for i,ele in enumerate(check_word): 
     if mapping_dict.has_key(ele): 
      if mapping_dict[ele] == "*": 
       mapping_dict[ele] = solution_word[i] 

       print ele, solution_word 
    print mapping_dict,check_word,solution_word 

Grundsätzlich bin ich Eingabe eines falsch geschriebenen Wortes und dann falsch geschriebenen Wort hat einige Zuordnung .. Ich mache das Mapping im Wörterbuch .. Wie

mapping_dict ={"a":"x"...."s":"*"...} 

So alle bekannten Alphabete, deren Zuordnung gefunden wurden, haben ein Legit Schlüsselwert Alphabet Paare .. für die Alphabete, für die ich die richtige Zuordnung gefunden haben, bin ich ersetzt sie mit „*“ und ich finde sie mit einem Algorithmus (invertierter Index)

Und wie ich diese gefunden habe, möchte ich mein Wörterbuch aktualisieren?

+3

Zeigen Sie uns mehr Kontext! Der Code, den du bisher geliefert hast, sieht gut aus (obwohl ich persönlich das nicht in eine Funktion gestellt hätte, da es ziemlich offensichtlich ist, was die eingewickelte Zeile macht). – Cameron

+0

Mehr auf Cameron, wenn Update-Wörterbuchschlüssel so einfach ist wie ein Schlüssel-Wert-Paar zu einem Zeitpunkt zu aktualisieren, tun Sie einfach 'my_dict [Schlüssel] = Wert', es ist effizienter. – CppLearner

+0

Hallo. Danke für Kommentare .. aber das war nur ein Beispiel .. Ich mache noch ein paar Schecks :) – Fraz

Antwort

1
>>> test = {"test": 1} 
>>> def update(dictionary,key,value): 
...  dictionary[key] = value 
... 
>>> update(test, "test", 2) 
>>> test 
{'test': 2} 

Ihr Problem muss woanders sein - das funktioniert.

Verwandte Themen