一、创建字典
方式一:
>>>item=[('name','Xujie'),('age',24)] #以元组为元素的列表
>>>d=dict(item)
>>>d={'name':'Xujie','age':24}
方式二:
>>>d=dict(name="xujie",age=24)
>>>print d
>>>{'age': 24, 'name': 'xujie'}
方式三:
d={}
d['name']='xujie'
d['age']=12
print d
{'name':'xujie','age':24}
二、字典的基本操作
d={'age': 24, 'name': 'xujie'}
len(d) #返回键值对的数量
d[k] #返回键为k的值
d[k]=v # 将v赋值给k
del d[k] #删除键为k的键值对
k in d # 判断键为k的键值对是否在字典中 查找效率比在列表中更高效
 
三、字典的格式化字符串
案例一:
>>>phonebook={'Beth':123,'Alice':321,'Ceil':234}
>>>print "Cei1's phone number is %(Ceil)s" % phonebook
输出:Cei1's phone number is 234
案例二:
代码:
templete ='''
<html>
<head>
<title>
%(title)s
</title>
</head>
<body>
<title>%(title)s</title>
<p>%(text)s</p>
</body>
</html>
'''
data={'title':'python','text':'is better than java??'}
print templete % data
输出结果:
<html>
<head>
<title>
python
</title>
</head>
<body>
<title>python</title>
<p>is better than java??</p>
</body>
</html>
 
四、字典的方法
d={'name':'Xujie','age':24}
1、clear
清除字典中的所有项
d.clear()
2、copy
x = d.copy()
copy是浅复制,所以有一下特性
返回一个具有相同键值对的新字典
副本字典中如果替换值,原字典不受影响,如果删除键值对,原字典也会删除
如果想深复制,则使用copy模块的deepcopy函数
from copy import deepcopy
x = d.deepcopy()
此时改变副本,原字典不受影响
3、fromkeys
使用给定的键建立新的字典,每个键默认对应的值为None
d.fromkeys(['name','age'])
也可以自定义默认值
d.fromkeys(['name','age'],'(unknow)')
d = {'name':'(unknow)','age':'(unknow)'}
4、get
>>>d.get('name')
>>>'xujie'
该方法与d['name'] 的区别 如果字典中没有相对应的键,get会返回None 后者会报错
5、has_key
>>>d.has_key('name')
>>>返回布尔值 判断字典中是否有指定的键
6、items和iteritems
items将字典项以列表形式返回
d.items() #以元组为元素的列表
iteritems返回键值对的迭代器对象
d.iteritems()
很多情况下迭代器更高效
7、keys和iterkeys
同上,前者返回键的列表
后者返回迭代对象
8、pop
将指定的键所代表的键值对从字典中移除
d.pop('name')
9、popitem
随机删除字典中的键值对
d.popitem()
10、setdefault
d.setdefault('name')
字典表中如果有键为‘name’ 的键值对就返回该键值对,如果没有设置该键,值默认为None,也可以通过传入第二个参数,设置默认值
11、update
用新的字典表更新已有的字典表,键重复则覆盖,没有则添加
12、values和itervalues
前者以列表形式返回字典表中的值,后者返回值的迭代器
 
 posted on 2017-07-08 21:51  徐杰  阅读(125)  评论(0编辑  收藏  举报