习题 40: 字典, 可爱的字典
cities = {'CA':'San Francisco', 'MI':'Detroit','FL':'Jacksonville'}
cities['NY'] = 'New York'
cities['OR'] = 'Portland'
def find_city(themap,state):
if state in themap:
return themap[state]
else:
return "Not found."
cities['_find'] = find_city
while True:
print "State?(ENTER to quit)",
state = raw_input(">")
if not state: break
city_found = cities['_find'](cities,state)
print city_found
执行结果:
$ python ex40.py
<function find_city at 0x1075c6578>
State?(ENTER to quit) >CA
San Francisco
State?(ENTER to quit) >MI
Detroit
State?(ENTER to quit) >o
Not found.
State?(ENTER to quit) >
加分习题
- 在 Python 文档中找到 dictionary (又被称作 dicts, dict)的相关的内容,学着对 dict 做更多的操作。
字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中。键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
#修改字典
dict = {'name':'anita','age':'19','hometown':'HongKong','talent':'sing'}
dict['age'] = 27
dict['hometown'] = 'GuangXi'
print "dict['age']:", dict['age']
print "dict['hometown']:", dict['hometown']
# del dict
print "dict.keys:", dict.keys()
print "dict.values:", dict.values()
#删除字典元素
del dict['hometown']
print "After del operation:"
print "dict.keys:", dict.keys()
print "dict.values:", dict.values()
print "After clear operation:"
dict.clear() #删除字典内所有元素
print "dict.keys:", dict.keys()
print "dict.values:", dict.values()
执行结果:
$ python ex40.py
dict['age']: 27
dict['hometown']: GuangXi
dict.keys: ['hometown', 'age', 'talent', 'name']
dict.values: ['GuangXi', 27, 'sing', 'anita']
After del operation:
dict.keys: ['age', 'talent', 'name']
dict.values: [27, 'sing', 'anita']
After clear operation:
dict.keys: []
dict.values: []
- 找出一些 dict 无法做到的事情。例如比较重要的一个就是 dict 的内容是无序的, 你可以检查一下看看是否真是这样。
- 试着把 for-loop 执行到 dict 上面,然后试着在 for-loop 中使用 dict 的 函数,看看会有什么样的结果。
dict = {'name':'anita','age':'19','hometown':'HongKong','talent':'sing'}
for item in dict.keys():
print dict[item]