代码来自Learn Python The Hard Way Exercise 39.请在下面的第一组代码中查看我的问题。
# create a mapping of state to abbreviation
states = {
'Oregon': 'OR',
'Florida': 'FL',
'California': 'CA',
'New York': 'NY',
'Michigan': 'MI'
}
# create a basic set of states and some cities in them
cities = {
'CA': 'San Francisco',
'MI': 'Detroit',
'FL': 'Jacksonville'
}
# do it by using the state then cities dict
print '-' * 10
print "Michigan has: ", cities[states['Michigan']]
print "Florida has: ", cities[states['Florida']]
为什么要按照上面的方式打印出来,只需按照下面的说法进行操作即可?
print '-' * 10
print "Michigan has: ", cities['MI']
print "Florida has: ", cities['FL']
我想知道我是否遗漏了一些重要的事情。它仅用于学习目的吗?如果是这样,我到底在那里学到什么?请澄清。
答案 0 :(得分:4)
第一个更通用:
>>> for state in ('Michigan', 'Florida'):
... print '%s has: %s' % (state, cities[states[state]])
...
第二种方法并没有以这种方式概括,因为你突然需要先验地知道州代码。
答案 1 :(得分:1)
如果你知道州的名字和缩写,你确实可以这样做。但是书中提出的方式可以很容易地以有用的方式进行调整,例如
for state, abbreviation in states.items():
if abbreviation in cities:
print state, "has: ", cities[abbreviation]
获取州与城市对的列表。
答案 2 :(得分:0)
看看漂亮的打印标准库: