第四章 字典:当索引不好用时

来源:互联网 发布:赛门铁克备份软件 破解 编辑:程序博客网 时间:2024/05/01 23:32

字典:python中唯一内建的映射类型,本质就是键-值对。通过键和值关联

4.1字典的使用

通过键来找值,而不必用索引

4.2创建和使用字典

phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'}

note:字典中的键是唯一的,而值不唯一。

4.2.1 dict函数

创建字典更方便:

>>>items=[('name','Gumby'),('age',42)]

>>>d=dict(items)

>>>d

{'age':42, 'name': 'Gumby'}

>>>d['name']

'Gumby'

 

dict函数不是真正的函数,和list、tuple、str一样是个类型。

4.2.2 基本字典操作

len(d):返回d中项(键值对)数量

d[k]:返回关联到键k上的值

d[k]=v:将值v关联到键k上

del d[k]:删除键为k的项

k in d :检查d中是否有含有键为k的项

4.2.3字典的格式化字符串

>>>phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'}

>>>"%(Cecil)s" % phonebook

'3258'

4.2.4字典方法
1.clear

清除字典中所有项,这个是原地操作

2.copy

返回一个具有相同键值对的新字典(实现的是浅复制):替换不改变,原地修改会改变(增加或减少)

可以使用深复制函数:deepcopy

3.fromkeys

使用给定的键建立新的字典,每个键都对应一个默认的值None

>>>{}.fromkeys(['name','age'])

{'age':None, 'name': None}

>>>dict.fromkeys(['name','age'],'(unknown)')#可设置默认值

{'age':'(unknown)', 'name': '(unknown)'}

 

使用dict不用创建一个空字典

4.get

更宽松的访问字典项的方法,访问不存在的项时不会出错

>>>d={}

>>>print d["dsa"]

 

Traceback(most recent call last):

  File "<pyshell#11>", line 1,in <module>

    print d["dsa"]

KeyError:'dsa'

 

使用get

>>>print d.get('dsa','N/A')#默认返回None,可改

N/A

5.has_key

检查字典中是否含有特定的键,相当于k in d.

6.items和iteritems

Items:将字典所有项以列表形式返回,不遵循次序

>>>d={'name':'zhangsan','age':'43'}

>>>d.items()

[('age','43'), ('name', 'zhangsan')]

 

Iteritems类似,不过返回的是迭代器

>>>it=d.iteritems()

>>>it

<dictionary-itemiteratorobject at 0x02EBC210>

>>>list(it)

[('age','43'), ('name', 'zhangsan')]

 

7.keys和iterkeys

Keys:键以列表的形式返回

Iterkeys:返回键的迭代器

8.pop

获得给定键的值:然后将此键值对删掉

>>>d.pop('age')

'43'

>>>d

{'name':'zhangsan'}

9.popitem

不用获取键,而随机弹出一个键值对

>>>d={'name':'zhangsan','age':'43'}

>>>d.popitem()

('age','43')

>>>d

{'name':'zhangsan'}

10.setdefault

某种程度类似于ge上增加了更新

使用get:

>>>d

{'name':'zhangsan'}

>>>d.get('age')

>>>print d.get('age')

None

使用setdefault:

>>>d.setdefault('age','34')

'34'

>>>d

{'age':'34', 'name': 'zhangsan'}

 

11.update

利用一个字典项更新另外一个字典项

>>>d={'name':'zhangsan','age':'43'}

>>>x={'age':'20'}

>>>d.update(x)

>>>d

{'age':'20', 'name': 'zhangsan'}

 

12.values和itervalues

Values:以列表的形式返回字典中的值

Itervalues:返回值的迭代器

>>>d

{'age':'34', 'name': 'zhangsan'}

>>>d.values()

['20','zhangsan']

0 0
原创粉丝点击