码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习07——字典(2)

时间:2016-09-28 15:05:32      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

笨办法学Python第40节,上次用的第三版的书,这次是第四版的书。

这一节的代码如下:

 1 cities = {CA:San Francisco, MI:Detroit, FL:Jacksonville}
 2 
 3 cities[NY] = New York
 4 cities[OR] = Portland
 5 
 6 def find_city(themap, state):
 7     if state in themap:
 8         return themap[state]
 9     else:
10         return "Not found."
11 
12 # ok pay attention!
13 cities[_find] = find_city
14 
15 while True:
16     print "State?(ENTER to quit)",
17     state = raw_input("> ")
18     if not state: break     这一句是说如果没有输入的话就break,所以想要跳出循环,什么都不输入直接回车就行
19 
20     #this line is the most important ever!study!
21     city_found = cities[_find](cities,state)
22     print city_found

运行结果:

技术分享

这一节最重要的是两句话:

cities[‘_find‘] = find_city
city_found = cities[‘_find‘](cities,state)

对这两句话的分析在书的下一节,在这里,我先把我的理解写上。

第一句:首先由代码得知,find_city是个函数,那么就是把这个函数放到字典cities中,并且命名为“_find”。

第二句:将cities这个字典中的state所在的值赋给city_found,为什么是state所在的值,因为cities这个字典里是find_city这个函数,而这个函数的作用里的(themap,state)这两个形参就是对应着21行的两个实参(cities,state),而cities就是前面的字典,这个函数就是返回themap[state],也就是cities中的键state对应的元素。

 

附上书中对第二句的解释:

1. Python 看到 city_found = 于是知道了需要创建一个变量。

2. 然后它读到 cities ,然后知道了它是一个字典

3. 然后看到了 [‘_find‘] , 于是 Python 就从索引找到了字典 cities 中对应的位置,并且获取了该位置的内容。

4. [‘_find‘] 这个位置的内容是我们的函数 find_city ,所以 Python 就知道了这里表示一个函数,于是当它碰到 ( 就开始了函数调用。
5. cities, state 这两个参数将被传递到函数 find_city 中,然后这个函数就被运行了。
6. find_city 接着从 cities 中寻找 states ,并且返回它找到的内容,如果什么都没找到,就返回一个信息说它什么都没找到。
7. Python find_city 接受返回的信息,最后将该信息赋值给一开始的 city_found 这个变量。

Python学习07——字典(2)

标签:

原文地址:http://www.cnblogs.com/EiffelRachel/p/5915918.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!