2016-04-26 18 views
0

Ich habe den folgenden Code, um Elemente aus einem Wörterbuch zu drucken.dict.items() in Python-Wörterbuch Rückgabetyp

my_dict = { 
       "apples": 430, 
       "bananas": 312, 
       "oranges": 525, 
       "pears": 217, 
       "strawberries": 267, 
       "blueberry": 179, 
       "boysenberry": 432, 
       "blackberry": 266, 
       "apricot": 321, 
       "plum": 143, 
       "peaches": 154 
      } 

for k, v in my_dict.items(): 
    print('key {} value {}\n'.format(k, v)) 

Der obige Code funktioniert gut und druckt den Schlüssel und die Werte. Nur aus Neugier wollte ich versuchen

es gibt mir einen Fehler.Ich will wissen, warum das ist? Mein Verständnis ist, dass my_dict.items() zurückgibt k and v

+2

'.items()' gibt Ihnen einen * iterable * von Schlüssel-Wert-Paare - es sei denn, Sie genau zwei Tasten haben, dass Zuweisung wird zwangsläufig fehlschlagen. – jonrsharpe

+1

Warum nicht versuchen, 'für Objekt in my_dict.items(): print (object)' zuerst eine bessere Vorstellung davon zu bekommen, was Sie gerade durchlaufen? – TigerhawkT3

Antwort

2

Es gibt eine Liste von Elementen (in python3 dict_items Objekt), die Sie nicht zu zwei Variable zuweisen können. Wenn Sie separat wollen die Schlüssel und Werte, die Sie dict.keys() und dict.values() Attribute verwenden:

>>> my_dict.items() 
[('bananas', 312), ('oranges', 525), ('peaches', 154), ('strawberries', 267), ('boysenberry', 432), ('apricot', 321), ('plum', 143), ('pears', 217), ('apples', 430), ('blueberry', 179), ('blackberry', 266)] 
>>> 
>>> k, v = my_dict.keys(), my_dict.values() 
>>> 
>>> k 
['bananas', 'oranges', 'peaches', 'strawberries', 'boysenberry', 'apricot', 'plum', 'pears', 'apples', 'blueberry', 'blackberry'] 
>>> 
>>> v 
[312, 525, 154, 267, 432, 321, 143, 217, 430, 179, 266] 
+1

* hust * Python 3 * hust * – jonrsharpe