Python学习笔记(四)—字典(dict)

来源:互联网 发布:联影 算法怎么样 编辑:程序博客网 时间:2024/06/07 06:08

-1. 字典 dict
在前面已经学会了顺序集合tuple和list,但是怎么讲两个给关联起来,进行查询,这里就需要用到字典—dict了。在dict中,使用 key-value来进行关联,并通过key查找value。
字典使用花括号{}来将元素括起来。

-① 创建一个dict

d = {    'Adam': 95,    'Lisa': 85,    'Bart': 59}

-② 计算一个dict的大小

dict也是一个集合,所以可以通过len()函数来计算dict的大小,其中一个key-value算一个

len(d)

-③ 查找dict中key 的值

通过d[‘key’]即可查找dict中对应key 的值,如

d = {    'Adam': 95,    'Lisa': 85,    'Bart': 59}val=d['Adam']print val结果:95

也可以通过for循环,遍历dict中的key,并通过key获取到对应的value,如下:

d = {    'Adam': 95,    'Lisa': 85,    'Bart': 59}for key in d:    print key,":", d.get(key)执行结果:    Lisa : 85    Adam : 95    Bart : 59

-④ 查看key是否存在

通过key访问dict,如果key不存在,程序会报错,那么通过以下两种方法可以来查询key是否存在
第一种,通过in方法: key in d 来返回结果Ture or False

if 'Bart' in d:    print d['Bart']else:    d['Bart'] = 59执行结果:59

第二种,dict提供的get方法,其使用方法:d.get(‘key’), 如果key不存在,返回none,也可以自定义返回值,如 d.get(‘key’, -1) 则key不存在时返回-1。
注意,返回none的时候Python的交互命令行不显示结果。

print d.get('Bart')print d.get('Paul')执行结果:59  None
d = {    'Adam': 95,    'Lisa': 85,    'Bart': 59}print "Adam:", d['Adam']print "Lisa:", d.get('Lisa')if 'Bart' in d:    print "Bart:", d['Bart']执行结果:    Adam: 95    Lisa: 85    Bart: 59

-④ 更新Dict
dict是一个可变的列表,可以通过赋值语句更新dict
如果key不存在,则在dict中添加一对新的key-value
如果key已经存在,则新的value会替换到旧的value

-⑤ 删除key的方法
d.pop(‘key’) ,对应的value也会一并删除

-⑥ dict的特点

和list相比,dict有以下特点:
查找速度快,时间复杂度不会随dict增大而增大
需要占用大量内存,内存浪费多
key不可以重复,且不可变
数据无序排放

注意:key必须是不可变对象。因为dict根据key来计算value的存储位置,如果相同的key每次计算时都得出不同的value,那dict内部就会完全混乱。通过key计算位置的方法是哈希算法,要保证hash的正确性,作为key的对象就不能变。Python中字符串和整数都是不可变对象,可以放心作为key,而list是可变的所以不能作为key。

key类型:字符串、整形、浮点型、元组型但是不能是列表(list是可变的)
value类型:都可以

0 0
原创粉丝点击