2016-12-29 25 views
-1

Ich habe ein Wörterbuch mit einer Anzahl von Schlüsseln und ich möchte jedes Element eines Schlüssels als eine Liste von Listen speichern.Zugriff auf ein Element eines Wörterbuchs?

dict = {'d': [[5.5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3'], [2.8, 3, 'p4']], 
     'm': [[4.2, 12, 'p5'], [4.8, 25, 'p6'], [4.3, 3, 'p7'], [8.9, 29, 'p8']], 
     's': [[8.6, 42, 'p9'], [9.7, 46, 'p10']], 
     'g': [[4.3, 56, 'p11'], [5.1, 8, 'p12']]} 
k=[] 
for i in range(len(dict)): 
    k.append(dict['d'][i]) 
print k 
  • Erwartete Ausgabe: [[5.5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3'], [2.8, 3, 'p4']]

  • Stromausgang: [2.8, 3, 'p4', [5.5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3'], [...]]

Bitte legen nahe, etwas oder zumindest mich in die richtige Richtung weisen. Danke im Voraus.

+0

Die bestehenden Antworten bereits Ihr Problem in einer besseren Art und Weise lösen, aber ich wollte um Sie auf den Fehler hinzuweisen, den Sie gemacht haben: Wenn Sie 'range (len (dict ['d']))' anstelle von 'range (len (dict))' verwendet hätten, hätten Sie das gewünschte Ergebnis erhalten. – mkrieger1

Antwort

1

Ich bin nicht sicher, warum Sie eine Schleife verwenden, aber der Wert, den Sie brauchen ist der Wert Schlüsseld in dict. Sie können es gerne zugreifen:

>>> my_dict = {'d':[[5.5,42,'p1'],[3,17,'p2'],[3,8,'p3'],[2.8,3,'p4']],'m':[[4.2,12,'p5'],[4.8,25,'p6'],[4.3,3,'p7'],[8.9,29,'p8']],'s':[[8.6,42,'p9'],[9.7,46,'p10']],'g':[[4.3,56,'p11'],[5.1,8,'p12']] } 

>>> my_dict['d'] 
[[5.5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3'], [2.8, 3, 'p4']] 

Hinweis: Verwenden Sie keine dict als Variablennamen, wie sie eingebaut ist Typ in Python

1

Nur index Zugang verwenden:

k = dict['d'] 

oder wenn Sie eine Kopie der Liste möchten:

k = dict['d'][:] 
+0

k = dict ['d'] [:] mit diesem bekomme ich die folgende Ausgabe [[5.5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3' ], [2.8, 3, 'p4', [5.5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3'], [...]]] statt von [[5,5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3'], [2.8, 3, 'p4']] –

-1

Als Ihr Wörterbuch jetzt steht, ist jede Taste bereits eine Liste von Listen. Wie Daniel hervorhob, zeigt jeder Schlüssel auf die Liste, auf die er verweist.

Wenn das, was Sie suchen eine Liste mit allen Listen in Ihrem Wörterbuch ist, können Sie einfach tun:

>>> di = {'d':[[5.5,42,'p1'],[3,17,'p2'],[3,8,'p3'],[2.8,3,'p4']],'m':[[4.2,12,'p5'],[4.8,25,'p6'],[4.3,3,'p7'],[8.9,29,'p8']],'s':[[8.6,42,'p9'],[9.7,46,'p10']],'g':[[4.3,56,'p11'],[5.1,8,'p12']] } 
>>> [value for value in di.values()] 
[[[5.5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3'], [2.8, 3, 'p4']], [[4.2, 12, 'p5'], [4.8, 25, 'p6'], [4.3, 3, 'p7'], [8.9, 29, 'p8']], [[8.6, 42, 'p9'], [9.7, 46, 'p10']], [[4.3, 56, 'p11'], [5.1, 8, 'p12']]] 
Verwandte Themen