2016-09-26 5 views
0

Ich bin mir bewusst, dass dies wirklich einfach ist, aber ich habe damit zu kämpfen. Grundsätzlich möchte ich die Ergebnisse einer for-Schleife in einem dicionary hinzuzufügen, so kann ich die Ergebnisse auf eine andere Funktion arbeiten, die ich das gewünschte Feld auf dem Schlüsselwert basierend drucken können,Hinzufügen von Ergebnissen aus einer for-Schleife zu einem Wörterbuch und dann an eine Liste anfügen

Beispiel:

i = 0 
    b = 0 
    cc = [] 
    while True: 
     i += 1 
     b += 1 
     abc = {b: i} 
     cc.append(abc) 
     if i == 3: 
      break 

Ergebnis: [{1: 1}, {2: 2}, {3: 3}]

Also, das erwartete Ergebnis [{"1": 1, "2": 2, "3": 3}]

für python Dies ist wäre 2.7

+0

Ist das einzige Problem mit dem Ergebnis, dass die Schlüssel Zahlen statt Strings sind? –

+1

Warum ein Wörterbuch in eine Liste aufnehmen, wenn Sie nur ein Diktat in der Liste haben? Warum nicht "cc" das dict statt –

+2

Nebenbei bemerkt, Ihre 'while' Logik nervt mich ... Wie in der Antwort unten, können Sie eine' for' Schleife verwenden oder zumindest Ihre Bedingung in schreiben die 'while' Schleife:' while i <3: '. :) – Daneel

Antwort

4

Basierend auf Ihrem erwartetes Ergebnis, würde ich dies vorschlagen:

cc = [] 
for i in range(0,3): 
    cc.append({str(i): i}) 

Aber bitte beachten Sie, dass Sie tun NICHT am Ende dieser Schleife ein Wörterbuch bekommen ... Was Sie erhalten eine Liste der Wörterbücher, die jeweils Wörterbuch mit nur einem Schlüssel-Wert-Paar ... [{'1':1},{'2':2}] ist nicht das Gleiche wie {'1':1, '2':2} und Sie werden wahrscheinlich Probleme mit einer solchen Liste von Wörterbüchern haben.

Also meine Vermutung ist, wollen Sie etwas mehr nach dem Vorbild dieses:

cc = dict() 
for i in range(0,3): 
    cc[str(i)] = i 

Sagen Sie mir bitte, wenn ich Ihr Problem falsch verstanden, oder wenn Sie für die Lösungen mehr Erklärung benötigen.

+0

Ihr zweites Beispiel funktionierte perfekt, aber wenn ich versuche, das CC-Diktat für k, v in cc zu iterieren, bekomme ich das: http://paste.ofcode.org/huid6kccw59pFxtTCJsrna –

+2

@ThalesPereira verwenden Sie diese 'für k, v in cc .iteritems() ' – Pavan

+0

@Pavan Ich schaffte es, dort hinein zu kommen, danke für diesen Pavan. Jetzt kann ich nach Hause gehen und schlafen. –

Verwandte Themen