Python学习07——字典(2)
笨办法学Python第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."
# ok pay attention!
cities['_find'] = find_city
while True:
print "State?(ENTER to quit)",
state = raw_input("> ")
if not state: break 这一句是说如果没有输入的话就break,所以想要跳出循环,什么都不输入直接回车就行
#this line is the most important ever!study!
city_found = cities['_find'](cities,state)
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)的更多相关文章
- Python学习笔记(字典)
今天学习一个python中的基本类型--字典(dictionary) 字典这种数据结构有点像我们平常用的通讯录,有一个名字和这个名字对应的信息.在字典中,名字叫做“键”,对应的内容信息叫做“值”.字典 ...
- python学习09——字典(3)
今天写了一道python字典题目,用了上次字典(2)中的方法,代码如下: json = {', 'IP':'10.0.0.1'} def find_value(themap, word): if wo ...
- python学习05——字典
笨办法学python第39节 这节主要讲解的是字典,首先字典和列表的两个区别是: 1. 列表中可以通过数字找到列表中的元素,是数字作为索引的:字典中可以通过任何东西找到想要的元素,即字典可以将一个物件 ...
- Python学习笔记-字典
字典是python中唯一内建的映射类型. 创建字典phonebook = {'Alice':'2341','Beth':'9102'} 可以使用dict通过其他映射或者键值对的序列建立字典.关键值参数 ...
- Python学习之字典详解
在元组和列表中,都是通过编号进行元素的访问,但有的时候我们按名字进行数据甚至数据结构的访问,在c++中有map的概念,也就是映射,在python中也提供了内置的映射类型--字典.映射其实就是一组key ...
- python学习:字典排序
按字典值排序 按照字典value排序,类似sort -k 命令 import operator x= {1:2,3:4,4:3,2:1,0:0} sorted_x = sorted(x.ite ...
- python学习之字典(Dictionary)练习
Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型 字典中分为键值对 , key 类型需要时被哈希. value 类型可以是 字符串.数字.元组等其他容器模 ...
- python 学习分享-字典篇
python字典(Dictionary) dict是无序的 key必须是唯一切不可变的 a={'key1':'value1','key2':'value2'} 字典的增删改查 a['key3']='v ...
- python学习10字典
'''''''''字典(Dict)是python语言的一个最大的特征1.定义:是可变的无序集合,以键值对为基本元素,可以存储各种数据类型2.表示:{} 列表:[] 元组 () 字符串 ‘’ “” ‘‘ ...
随机推荐
- 微信web开发者工具
http://mp.weixin.qq.com/wiki/10/e5f772f4521da17fa0d7304f68b97d7e.html#.E4.B8.8B.E8.BD.BD.E5.9C.B0.E5 ...
- Qt设计师学习笔记--Sharping-Changing Dialogs
1.pushbutton->default属性为true,按回车相当于点击该按钮. 2.选中checkable后,Button变成切换按钮(toggle button),可以有两种状态:按下/弹 ...
- img的空白符
在div里面嵌套了一个img出来问题,div的高度超过了img的高度,大约3px ,查看了样式没什么问题,后来百度了一下,找到了2种的方法都有效: 第一种:img{display:block} 第二种 ...
- Scrum Meeting 13-20151221
任务安排 姓名 今日任务 明日任务 困难 董元财 无(数据库) 网络连接框架优化 无 胡亚坤 无(数据库) 优化商品搜索 无 刘猛 无 无 马汉虎 无 无 赖彦俞 无 无 燃尽图 团队照片 暂无 代码 ...
- Xcode7 模拟器安装app (转)
本文转自同事zz的博客http://archerzz.cn/ios/xcode-install-app.html 原由 很多时候,为了学习了解别人的app,很多时候我们是直接拿别人的app安装在自己的 ...
- 第一次写Web API接口
API是什么?只知道是网络接口,具体怎么写?不会!如何调用?不会!那怎么办? 第一次的经历~~ 需求:为其他项目提供一个接口 功能:为项目提供询盘信息和商家信息,格式为Json字符串 拿过来,就开始做 ...
- javascript事件之:谈谈自定义事件(转)
http://www.cnblogs.com/pfzeng/p/4162951.html 对于JavaScript自定义事件,印象最深刻的是用jQuery在做图片懒加载的时候.给需要懒加载的图片定义一 ...
- EasyUI的combobox控件使用onchange 问题
在项目中几次都遇到了同样的问题,现在都不知道怎样解决了! 路过的朋友们帮我看看嘛!谢谢了! 最后我想要实现的效果是这样的. 在下拉列表中不存在值.(这里的是下拉列表中存在值的!) 但是在我输入值 ...
- 个人对JQuery Proxy()函数的理解
转载至:http://www.cnblogs.com/acles/archive/2012/11/20/2779282.html JQuery.proxy(function,context): 使用c ...
- 创建用资源管理器打开FTP位置
FTP快捷方式默认用浏览器打开,而不是用资源管理器打开,管理文件不习惯. 解决方法1:创建桌面快捷方式 新建快捷方式,键入对象位置 %windir%\explorer.exe "ftp:// ...