В упражнении 39 Learn Python The Hard Way, строки 37 до 39 выглядеть следующим образом:Learn Python The Hard Way - Упражнение 39
print "-"*10
for state, abbrev in states.items():
print "%s has the city %s" % (state, abbrev)
Я думал, что я понял это. Я думал, что Python берет ключ: VALUE из «состояний» и назначает KEY «state», а VALUE - «abbrev».
Однако, я нашел что-то странное случилось, когда я вошел в следующий код:
print "-"*10
for test in states.items():
print "%s has the city %s" % (test)
Она производит тот же вывод, что и исходный код. Но это работает, только если вы положили %s
в инструкцию печати дважды.
Может кто-нибудь объяснить, что происходит с «тестом»? Что такое «тест»? Это кортеж? Он, как представляется, содержит как KEY
, так и VALUE
от states.items()
.
Я просмотрел некоторые другие вопросы по Управлению 39 здесь, и я не нашел тот же запрос.
код приведен ниже (для Python 2.7)
# create a mapping of state to abbreviation
states = {
'Oregan': 'OR',
'Florida': 'FL',
'California': 'CA',
'New York' : 'NY',
'Michigan' : 'MI'
}
print "-"*10
for state, abbrev in states.items():
print "%s has the city %s" % (state, abbrev)
print "-"*10
for test in states.items():
print "%s has the city %s" % (test)
вы не должны использовать states.items(), словаря итерацию по умолчанию есть ключ –