免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1961 | 回复: 0
打印 上一主题 下一主题

Python-字典常用方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-29 10:58 |只看该作者 |倒序浏览
http://blog.sina.com.cn/s/blog_5c6760940100bmg5.html
当然说字典,那也就有一些常用方法
------------------------清除------------------------
clear()方法,将字典所有内容清除:
>>> d = {'age' : 12,
'name' : 'bob'}
>>> d
{'age': 12, 'name': 'bob'}
>>> d.clear()
>>> d
{}
有人可能会问为什么不直接d={}?
看下面的例子:
>>> d = {'age' : 12,
'name' : 'bob'}
>>> x = d
>>> d = {}
>>> x
{'age': 12, 'name': 'bob'}
再看下面:
>>> d = {'age' : 12,
'name' : 'bob'}
>>> x = d
>>> d.clear()
>>> x
{}
所以如果要真正清除一个字典要用clear
------------------------复制------------------------
>>> d = {'age' : 12,
'name' : 'bob'}
>>> y = d.copy()
>>> y['age'] =
32
>>> d
{'age': 12, 'name': 'bob'}
>>> y
{'age': 32, 'name': 'bob'}
复制后 y 的修改与 d 无关
但如果一个字典中有引用类型,如list,复制只会复制其引用而不会复制其值:
>>> d = {'names':
['bob', 'sam']}
>>> y = d.copy()
>>> y['names'][0] =
'jack'
>>> y
{'names': ['jack', 'sam']}
>>> d
{'names': ['jack', 'sam']}
如果要克服这个困难,那就必须用“深复制“:
>>> from copy import
deepcopy
>>> d = {'names':
['bob', 'sam']}
>>> y =
deepcopy(d)
>>> y['names'][0] =
'jack'
>>> d
{'names': ['bob', 'sam']}
>>> y
{'names': ['jack', 'sam']}
------------------------get------------------------
先看一个例子:
>>> d = {}
>>> d['name']
Traceback (most recent call last):
  File "",
line 1, in
KeyError: 'name'
>>> print
d.get('name')
None
>>> d.get('name',
'N/A')
'N/A'
如果用索引直接访问一个不存在的值,Python会报错,但是如果用get方法会返回一个默认值,通过传入第二个参数来自定义一个默认值
------------------------键是否存在?------------------------
有两种方法来查询:
>>> d = {'age' : 12,
'name' : 'bob'}
>>> 'age' in d
True
>>>
d.has_key('age')
True
可以用in关键字也可以通过has_key方法
------------------------键和值------------------------
将键、值、键值转换成List
>>> d = {'age' : 12,
'name' : 'bob'}
>>> d.keys()
['age', 'name']
>>> d.values()
[12, 'bob']
>>> d.items()
[('age', 12), ('name', 'bob')]
------------------------设默认值------------------------
当你要确保一个字典中确保有某个键时,可以用setdefault:
>>> d = {}
>>>
d.setdefault('name', 'N/A')
'N/A'
>>> d
{'name': 'N/A'}
>>> d['name'] =
'bob'
>>>
d.setdefault('name', 'N/A')
'bob'
>>> d
{'name': 'bob'}
setdefault和get十分类似,都返回查询的值,但是setdefault将默认值加入字典中。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/84280/showart_1913912.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP