Chinaunix首页 | 论坛 | 博客
  • 博客访问: 47046
  • 博文数量: 23
  • 博客积分: 425
  • 博客等级: 下士
  • 技术积分: 237
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-10 09:57
文章分类

全部博文(23)

文章存档

2013年(23)

我的朋友

分类: Python/Ruby

2013-01-05 18:58:20

Python中的特殊类型-字典

映射(mapping)是指通过不可变对象来引用值的数据结构,字典是Python中唯一内建的映射类型,
其是由多个键(key)及与其对应的值构成的对组成,键是唯一的,但值不唯一,且存储没有特定的顺序,
字典中键的类型可以是数字、字符串或元组。
eg: 字典的创建 dic= {'Allen':'1111', 'Bob':'2222', 'Cici':'3333'}
字典的基本操作与序列(sequence)有些类似:
1)len(dic) 返回字典dic中项的数量(键/值对称为项)
2)dic[k] 返回字典中关联到键k上的值
3)dic[k]=value 将值value关联到键k上(键k不在字典中时,将自动添加)
4)del dic[k] 删除字典中键为k的项
5)k in dic 检查字典中是否含有键为k的项
字典的使用
1)格式化字符串
在每个转换说明符中的%字符后面,可以加上(用圆括号括起来的)键,其后在街上其他类型说明等元素,eg:
>>> dic= {'Allen':'1111', 'Bob':'2222', 'Cici':'3333'}
>>> "Allen's number is %(Allen)s." % dic
Allen's number is 1111.
2)clear
清楚字典中所有的项,无返回值
>>> x = {}
>>> y = x
>>> x['key']='value'
>>> y
{'key':'value'}
>>> x.clear()
>>>y
{}  # clear方法清空原始字典中的所有元素
3)copy
返回一个具有相同键-值对的新字典,copy实现的是浅复制,另有模块的deepcopy实现深复制,eg:
>>>from copy import deepcopy
>>>d={}
>>> d['names']=['ALLen']
>>> d1=d.copy()
>>> d2=deepcopy(d)
>>> d['names'].append('Bob')
>>> d1
{'names':['Allen',‘Bob']}
>>> d2
{'names':['Allen']}
4) get
能更宽松的返回字典项,一般,试图访问字典中不存在的项会报错,通过get()访问时,不会有异常,
一般得到None值,也可以自定义默认返回值,eg:
>>> d.get('age', 'N/A')
'N/A'
5)keys/values/items
keys将字典中的键以列表形式返回
values将字典中的值以列表形式返回
items将字典中所有的项以列表方式返回
6)update
利用一个字典项更新另一个字典
提供的字典中的项会被添加到旧的字典中,若有相同的键则会进行覆盖
阅读(266) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~