字典的用法,dict的查找特别快捷。如果我们的项目经常用到搜索某些数据,最好用dict类型。
### 认识dict[¶](http://uliweb.clkg.org/tutorial/view_chapter/176#title_0-0-1)
~~~
peter@智普教育:~$ python
Python 2.7.3 (default, Aug 1 2012, 05:16:07)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a={"name":"jike","age":30,"job":"python优秀工程师","level":"智普小天才"}
>>> print a["level"]
智普小天才
>>> print a["age"]
30
~~~
这就是字典,今年30岁的python工程师是一个天才。 和数据库结合非常完美。制作一个电话联系人也很实用。
上面的"name","age"等叫做key;
"jike",30,"智普小天才",叫做value。
获取所有的keys。
~~~
>>> a={"name":"jike","age":30,"job":"python优秀工程师","level":"智普小天才"}
>>> b = a.keys()
>>> print b
['job', 'age', 'name', 'level']
>>> type(b)
<type 'list'>
>>> c = a.values()
>>> print c
['python\xe4\xbc\x98\xe7\xa7\x80\xe5\xb7\xa5\xe7\xa8\x8b\xe5\xb8\x88', 30, 'jike', '\xe6\x99\xba\xe6\x99\xae\xe5\xb0\x8f\xe5\xa4\xa9\xe6\x89\x8d']
>>> type(c)
<type 'list'>
>>>
~~~
上面的代码,你看懂了吗? 请解释一下。
注意:上面print c的时候有些乱码是python控制台的原因。
### 给dict添加内容[¶](http://uliweb.clkg.org/tutorial/view_chapter/176#title_0-0-2)
~~~
a={}
a['email']='cool@jeapedu.com'
~~~
这样做可以吗?请试试。 list可以做如下动作吗?为什么?
~~~
list=[]
list[5]=10
~~~
### 删除操作[¶](http://uliweb.clkg.org/tutorial/view_chapter/176#title_0-0-3)
~~~
peter@智普教育:~$ python
Python 2.7.3 (default, Aug 1 2012, 05:16:07)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a={"name":"jike","age":30,"job":"python优秀工程师","level":"智普小天才"}
>>> for b in a: print b
...
job
age
name
level
>>> a.pop("name")
'jike'
>>> print a
{'job': 'python\xe4\xbc\x98\xe7\xa7\x80\xe5\xb7\xa5\xe7\xa8\x8b\xe5\xb8\x88', 'age': 30, 'level': '\xe6\x99\xba\xe6\x99\xae\xe5\xb0\x8f\xe5\xa4\xa9\xe6\x89\x8d'}
>>>
>>> del a["job"]
>>> print a
{'age': 30, 'level': '\xe6\x99\xba\xe6\x99\xae\xe5\xb0\x8f\xe5\xa4\xa9\xe6\x89\x8d'}
~~~
### 如何判断key是否存在?[¶](http://uliweb.clkg.org/tutorial/view_chapter/176#title_0-0-4)
~~~
>>> a["age"]
30
>>> a["name"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'name'
~~~
直接用会出错。
用for key in a: ?
还有更好的方法吗?
答案
[code-comment](http://uliweb.clkg.org/wiki/code-comment) : n1761:a.has_key("name")
获取键值的方法
~~~
a.get("age")
a["age"]
~~~
区别是什么?
a.get比a["name"]更安全,如果key不存在。get函数返回空None,但不会出错。
update函数的用法
~~~
>>> print a
{'age': 30, 'level': '\xe6\x99\xba\xe6\x99\xae\xe5\xb0\x8f\xe5\xa4\xa9\xe6\x89\x8d'}
>>> a1={"hello":1}
>>> a.update(a1)
>>> print a
{'age': 30, 'hello': 1, 'level': '\xe6\x99\xba\xe6\x99\xae\xe5\xb0\x8f\xe5\xa4\xa9\xe6\x89\x8d'}
~~~
### 获取key,value的另一个方法
~~~
In [4]: d.items()
Out[4]: [(1, 'a'), (2, 'b'), (3, 'c')]
~~~
- Python爬虫入门
- (1):综述
- (2):爬虫基础了解
- (3):Urllib库的基本使用
- (4):Urllib库的高级用法
- (5):URLError异常处理
- (6):Cookie的使用
- (7):正则表达式
- (8):Beautiful Soup的用法
- Python爬虫进阶
- Python爬虫进阶一之爬虫框架概述
- Python爬虫进阶二之PySpider框架安装配置
- Python爬虫进阶三之Scrapy框架安装配置
- Python爬虫进阶四之PySpider的用法
- Python爬虫实战
- Python爬虫实战(1):爬取糗事百科段子
- Python爬虫实战(2):百度贴吧帖子
- Python爬虫实战(3):计算大学本学期绩点
- Python爬虫实战(4):模拟登录淘宝并获取所有订单
- Python爬虫实战(5):抓取淘宝MM照片
- Python爬虫实战(6):抓取爱问知识人问题并保存至数据库
- Python爬虫利器
- Python爬虫文章
- Python爬虫(一)--豆瓣电影抓站小结(成功抓取Top100电影)
- Python爬虫(二)--Coursera抓站小结
- Python爬虫(三)-Socket网络编程
- Python爬虫(四)--多线程
- Python爬虫(五)--多线程续(Queue)
- Python爬虫(六)--Scrapy框架学习
- Python爬虫(七)--Scrapy模拟登录
- Python笔记
- python 知乎爬虫
- Python 爬虫之——模拟登陆
- python的urllib2 模块解析
- 蜘蛛项目要用的数据库操作
- gzip 压缩格式的网站处理方法
- 通过浏览器的调试得出 headers转换成字典
- Python登录到weibo.com
- weibo v1.4.5 支持 RSA协议(模拟微博登录)
- 搭建Scrapy爬虫的开发环境
- 知乎精华回答的非专业大数据统计
- 基于PySpider的weibo.cn爬虫
- Python-实现批量抓取妹子图片
- Python库
- python数据库-mysql
- 图片处理库PIL
- Mac OS X安装 Scrapy、PIL、BeautifulSoup
- 正则表达式 re模块
- 邮件正则
- 正则匹配,但过滤某些字符串
- dict使用方法和快捷查找
- httplib2 库的使用