Vergleich Liste und Wörterbuch
So, ich möchte prüfen, wenn es gibt einige Wörter, die eine Liste und ein Lexikon B gemeinsam hat. Ich habe dann möchte prüfen, ob die Summe der Werte der häufigsten Begriffe(keys) sind höher als 10. Ich möchte in der Lage sein, dies zu tun in einer einfachen Weise.
Beispiel (funktioniert nicht richtig):
A = ['a','b','c','e']
B = {'a': 12, 'b': 8, 'c':3,'d':15}
TheSum = 0
for key,value in B.items():
if key in A:
TheSum += int(value)
if TheSum > 10:
print ("The sum of the values are higher than 10 and the words incommon are:")
print (key,"=", value,"points")
else:
print ("Nothing in common")
Ich will es drucken:
Die Summe der Werte, die höher sind als 10, und die Worte verwendet incommon sind:
a = 12 Punkte
b = 8 Punkte
c = 3 Punkte
Ich hoffe, dass mein problem verständlich ist. Ich denke, es wird zu chaotisch mit all den für - und if-Statements.
- In welcher Sprache wollen Sie arbeiten? Ihre pseudo-code sieht nett aus, nicht besonders unordentlich, warum denken Sie, dass? Das einzige, was ich sehe, ist, zum umkehren der loops. Schleife zunächst durch Ihre Liste und suchen Sie dann das Wörterbuch, das, was Wörterbuch vorgenommen werden.
- Oh, seine python 3.2
InformationsquelleAutor danand7 | 2013-04-10
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich mit einem
set
und dann einen generator-Ausdruck. Wahrscheinlich einfacher zu zeigen. Zuerst bekommen wir die gemeinsamen Elemente:Und dann können wir die Summe der Werte von B im Zusammenhang mit diesen Tasten:
Und dann etwas drucken, wenn es > 10.
Gerade jetzt, Sie sind Schleife über alle Schlüssel-Wert-paar in B (in Ordnung), und dann überprüfen, um zu sehen, ob der Schlüssel in Eine (die funktioniert aber langsam, weil, um zu testen, die Mitgliedschaft in einer Liste, die Sie Scannen müssen über die Elemente.) Wenn der key in Ein, sammeln Sie dann TheSum. Das Teil funktioniert tatsächlich.
Aber Sie drucken jedes Schlüssel/Wert-paar, nachdem Sie das kumulative Summe > 10, was ich nicht glaube, ist, was Sie nach.
Um zu testen, ob die Summe der Werte in
B
mit Schlüssel inA
ist größer als 10:Wenn Sie möchten, eine Liste der Elemente der
A
die Schlüssel inB
Sie bekommen es von[k for k in A if k in B]
.