2014-11-21 8 views
-3

Это больше разъяснений:Перебор словарь для кортежей

Если бы я сказал:

for key, value in dictionary.iteritems(): 

Это будет на самом деле дать мне ключи и значения, а не просто каждый ключ быть назначен как «ключ» и "value"

Это что-то, что меня всегда путало в Python?

+1

Это даже вопрос? Предложение, заканчивающееся вопросительным знаком, не является чем-то, на что мы можем ответить. –

+0

'.iteritems()' возвращает кортеж и указывая ключ, значение в котором вы разархивируете его в эти два значения – user2097159

ответ

6

Для целей, например, следующие два эквивалентны:

Пример 1

for item in dictionary: 
    print(item, dictionary[item]) 

Пример 2

for k, v in dictionary.items(): 
    print(k, v) 

Однако в примере 1, не имеют прямого доступа к value самого элемента, только ключ, тогда как в примере 2 у вас есть доступ к нему в виде v.

Терминал

>>> dictionary = {'a': 1, 'b': 2, 'c': 3} 
>>> for item in dictionary: 
... print(item, dictionary[item]) 
... 
b 2 
c 3 
a 1 
>>> for k, v in dictionary.items(): 
... print(k, v) 
... 
b 2 
c 3 
a 1 

И конечно k, v произвольны, как и kv может быть что угодно, например .:

>>> for abc, xyz in dictionary.items(): 
... print(abc, xyz) 
... 
b 2 
c 3 
a 1