2016-04-26 13 views
0

辞書から項目を印刷する次のコードがあります。dict.items()python辞書戻り型

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)) 

上記のコードは正常に動作し、キーと値を出力します。私が試したかった好奇心の外に

k,v = my_dict.items() 

それは私にエラーを与えます。なぜこれが知りたいのですか?私の理解はmy_dict.items()k and v

+2

'.items()'あなたにキーと値のペアの*反復可能*を与える:あなたは個別にキーを取得したいと値ならば、あなたはdict.keys()dict.values()属性を使用することができます代入が失敗するようになりました。 – jonrsharpe

+1

my_dict.items()内のオブジェクトに対して 'try :(print)(オブジェクト)'が最初に何を繰り返しているかについてのより良い考えを得るのはなぜですか? – TigerhawkT3

答えて

2

を返すということです。これは、(python3 dict_itemsオブジェクト内の)項目のリストを返します。これは2つの変数に割り当てることができません。 - あなたは正確に2つのキーを持っていない限り、その

>>> 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

*咳* Python 3 *咳* – jonrsharpe