3、Python-字典

  字典是Python中唯一内建的映射类型,是由键/值对来组成,键可是是数字、字符串、甚至元组,但是键必须是唯一的。

1、字典的创建

字典的创建很简单,以下格式就能创建字典:dictvalue = {key1 : value1,  key2 : value2, ...}

也可以使用dict()函数来创建,它是通过序列或者元组对,或者是关键字参数dict(key1 = value1, key2 = value2, ...)

View Code
 1  item = dict((['name', 'xiaoli'],['age', 12]))
 2  item
 3  {'age': 12, 'name': 'xiaoli'}
 4  item = dict([['name', 'xiaoli'],['age', 12]])
 5  item
 6  {'age': 12, 'name': 'xiaoli'}
 7  item = dict([('name', 'xiaoli'),('age', 12)])          
 8  item
 9  {'age': 12, 'name': 'xiaoli'}
10  item = dict([('name', 'xiaoli'),('age', 12)])          
11  item
12  {'age': 12, 'name': 'xiaoli'}

2、字典的基本操作

字典的基本操作和序列的相类似:

len(d)返回字典中键值对个数;

d[key]返回字典中关联到键key中的值;

d[key]=value将值value关联到键key上;

del d[key]删除键位key的值;

key in d检查d中是否含有键位key的项;

3、字典的格式化字符串

在格式化转换符%之后,加上用圆括号括起来的键,后面在跟上转换类型说明符。

View Code
template = '''<html>
    <head><title>%(title)s</title></head>
    <body>
    <h1>%(title)s</h1>
    <p>%(text)s</p>
    <p>%(num)d</p>
    </body>'''
data = {'title': 'My Home Page', 'text': 'Welcome to my home page!','num':12}
print template % data

运行结果:
<html>
    <head><title>My Home Page</title></head>
    <body>
    <h1>My Home Page</h1>
    <p>Welcome to my home page!</p>
    <p>12</p>
    </body>

4、字典的方法

4.1 clear方法清除字典中的所有项

4.2 copy方法返回一个具有相同键值对的新字典,copy方法是一种浅复制,复制的不完整,对副本中的值重新赋值原字典中的字不变,但是如果对副本中的值进行删除或增加,则原字典中的值也会被相应修改;解决这种问题的方法是深复制deepcopy,将原字典中的完整复制一份

View Code
 1 item1 = {'name':'xiaoli','course':{'math','english','chinese'}}
 2 item2= item1.copy()
 3 item2['name'] = 'xiaowang'
 4 item2['course'].remove('math') 
 5 item1
 6 {'course': set(['chinese', 'english']), 'name': 'xiaoli'}
 7 item2
 8 {'course': set(['chinese', 'english']), 'name': 'xiaowang'}
 9 from copy import deepcopy
10 item3 = deepcopy(item1)
11 item3['name'] = 'xiaozhao'
12 item3['course'].remove('chinese')
13 item1
14 {'course': set(['chinese', 'english']), 'name': 'xiaoli'}
15 item3
16 {'course': set(['english']), 'name': 'xiaozhao'}

4.3 fromkeys方法使用给定的键建立新字典,每个键默认的字为None

View Code
1 c = {}
2 c.fromkeys(['name','age'])
3 {'age': None, 'name': None}

4.4 get方法用来访问字典中的值,如果不存在返回None,也可以提供一个默认的值

4.5 has_key方法用来检查字典中是否含有给定的键

4.6 items和iteritems,items方法将字典中的所有项以列表的方式返回,这些列表中的每一项格式是(key, value);iteritems方法和items方法功能相同,但是它返回的是一个迭代器对象

4.7 keys和iterkeys,keys方法将字典中的键以列表的方式返回;iterkeys方法返回字典中键的一个迭代器

4.8 pop方法用来获取字典中对应键的值,并将该键值对从字典中删除

4.9 popitem方法类似于list.pop(),它会弹出列表中的最后一个元素并删除,但popitem弹出的是随机的项,因为字典本身没有顺序的概念

4.10 setdefault方法在某种程度上类似于get方法,获取字典中给定键的值,如果键不存在可以对该键关联的值进行设置

4.11 update方法可以将一个字典中的值更新到另一个字典中,如果存在相同的键,则会把原有字典中的值覆盖掉

4.12 values和itervalues,values方法以列表的形式返回字典中的值,itervalues方法返回字典中所有值的一个迭代器

posted @ 2013-03-13 22:36  Hala  阅读(410)  评论(0编辑  收藏  举报