2017-10-23 3 views
0

Zunächst einmal, ich bin neu in Python und zu versuchen, ein dynamisches Wörterbuch zu erstellen:Wie bekomme ich den gewünschten Wert des Wörterbuchs?

editdistances = { r.name : editdistance.eval(baseline.result, r.result)} 

beachten Sie, dass ich ein for r in values: oben r mit 2 Instanzen Namen renne und value.Now die Sache ist, ich mag fügen sie den Wert Teil (editdistance.eval (baseline.result, r.result) in einer Tabelle

table.append(editdistances[x]) 

das ist, was ich versuchte, aber ziemlich sicher, dass es falsch ist, weil es den Wert nicht ist zu verweisen. Wie kann ich es beheben und Ich weiß immer noch, wie der Name (r.name) von jedem Wert in der Tabelle ist

Edit: einfach ein weiteres Problem bemerkt in editdistances = { r.name : editdistance.eval(baseline.result, r.result)} im Grunde sagen wir, ich habe 3 Studenten, student1, Schüler 2 und Student 3. Und ich will für jede einer nach dem anderen an den Eingang 3-Typen mit einer Schleife, im Grunde erste Iteration student1: 16..second iteration student1: 16 student2: 12..diriteriteration student1: 16 student2: 12 student3: 9.4th iteration student1: 16,7 student2: 12 student3: 9 ... und so weiter, wie kann Ich tue das und kann mich immer noch auf jede Note individuell beziehen, vorausgesetzt, dass jede auf einen anderen Kurs verweist.

Antwort

1
editdistances = { 'r.name' : "editdistance.eval(baseline.result, r.result)"} 
table=[] 
for r in editdistances: 
    table.append(editdistances[r]) 
print (table) 

Ausgabe

['editdistance.eval(baseline.result, r.result)'] 
0

Sie können den Wert Zugriff für einen bestimmten Schlüssel in einem Wörterbuch auf diese Weise (unter der Annahme r hat eine Eigenschaftswerte:

for value in r.values: 
    table.append(editdistances[value]) 

Wenn Werte ein Verfahren zur Herstellung r ist, dann müssen Sie auch Klammern hinzu:

for value in r.values(): 
    table.append(editdistances[value]) 
0

Das scheint eher so zu sein, als würden Sie nach einem Wörterbuch suchen.

„Wie kann ich das tun und noch in der Lage sein, jede Klasse zu verweisen indivudually jeweils unter der Annahme, bezieht sich auf einen anderen Kurs“

erstellen ein Wörterbuch mit jedem Schüler als Schlüssel in der ersten Ebene. Dann wird jeder Student ein Wörterbuch ist, mit einem Kurs-Namen für Schlüssel, und die Noten als Wert angehängt:

students = { 
      'student1' : {'class1' : 'grade1', 'class2' : 'grade2', 'class3' : grade3'}, 
      'student2' : {'class1' : 'grade1', 'class2' : 'grade2', 'class3' : grade3'}, 
      'student3' : {'class1' : 'grade1', 'class2' : 'grade2', 'class3' : grade3'} 
      } 

for student in students: 
    for class_name in student: 
     # print the student's name, class name, and their grade for that class. 
     print (student, class_name, students[student][class_name]) 

Ihre aktuelle Frage gegeben, die Frage selbst nicht geschrieben, dass eindeutig Und Sie haben Abhängigkeits Code/Datenstrukturierung, die Sie kurz erwähnen, aber nicht vollständig beschreiben können.

Bitte geben Sie diesen Abhängigkeitscode an, damit wir sehen können, worüber Sie sprechen. Zum Beispiel ist der Satz "Ich mache das in einer for-Schleife" viel mehr Zeichen als nur Einfügen der genauen und ursprünglichen Code.

+0

Dieser Code behebt mein Problem nicht, da ich das Wörterbuch automatisch füllen möchte und Ihre Funktion die Werte nur statisch geliefert hat. – Tim

+0

Ihre Frage sagt "Holen Sie sich den gewünschten Wert." nicht "bevölkern/einfügen/setzen", weshalb ich sagte, dass es nicht klar geschrieben wurde. Sie haben auch einige Tippfehler in Ihrem Code und definieren nicht die gewünschte Endergebnis-Datenstruktur, nach der Sie suchen, oder die Operationen für die Methoden, die Sie in Ihrem Code verwenden. Darüber hinaus kann diese Frage ein Duplikat sein von: https://stackoverflow.com/questions/2468334/python-how-to-create-dynamic-and-expandable-dictionaries –

Verwandte Themen