Python词典打印选项

时间:2013-11-13 11:52:56

标签: python dictionary

代码来自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']

我想知道我是否遗漏了一些重要的事情。它仅用于学习目的吗?如果是这样,我到底在那里学到什么?请澄清。

3 个答案:

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

看看漂亮的打印标准库:

http://docs.python.org/2/library/pprint.html