上一篇我们讲了元组(tuple)的操作,今天我们来讲一讲字典的详细操作
1:定义方式
dict1={}
dict2={'a':1,'b':'bb',3:'c'}
dict3=dict(name='baby',age=28) ==》采用的是关键字创建字典
dict4={}.fromkeys(('x','y'), -1)
>>> i=['a','b']
>>> l=[1,2]
>>> dict([i,l])
给字典加值dict3.setdefault('value','lilei'),如果存在value这个key,则不变,如果没有,则给dict3增加一个 value:lilei 项
建议:如果values是数字,建议使用字符串类型的,比如 dicta={‘abc’,‘1232’}
特性
1)、键与值用冒号“:”分开;
2)、项与项用逗号“,”分开;
3)、字典中的键必须是唯一的,而值可以不唯一。如果定义一个字典的时候出现两个key,后面的key会覆盖掉前面的key对应的值
键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行,会报错
2:访问
dict3['name']
如果key不存在会报错,那么怎么判断呢,可以使用dict3.has_key('value'),如果dict3的key中有 value,则返回True,没有则返回False
当然也可以用get方法==》 dict3.get('name'),注意:整个地方是()不是[ ],如果key不存在,可以给一个默认值,dict3.get('value','gogogo')
3:修改
修改字典直接给key赋值就好 dict3['name']='hanmeimei'
4:删除
1)根据key删除 del dict2['a']
2)清空字典所有的值 dict2.clear()
3)删除整个字典 del dict2
5:一些操作
cmp(dict1,dict2) ==>比较2个字典内容,如果一样返回0
len(dict3) ==>获取字典长度
str(dict3) ==>转换成字符
字典内置常用方法:
1、adict.keys() 返回一个包含字典所有KEY的列表;
2、adict.values() 返回一个包含字典所有value的列表;
3、adict.items() 返回一个包含所有(键,值)元祖的列表;
4、adict.clear() 删除字典中的所有项或元素;
5、adict.copy() 返回一个字典浅拷贝的副本;
6、adict.fromkeys(seq, val=None) 创建并返回一个新字典,以seq中的元素做该字典的键,val做该字典中所有键对应的初始值(默认为None);
7、adict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None);
8、adict.has_key(key) 如果key在字典中,返回True,否则返回False。 现在用 in 、 not in;
9、adict.iteritems()、adict.iterkeys()、adict.itervalues() 与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表;
10、adict.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;
11、adict.setdefault(key, default=None) 和set()方法相似,但如果字典中不存在Key键,由 adict[key] = default 为它赋值;
12、adict.update(bdict) 将字典bdict的键值对添加到字典adict中。
大写的注意:di.items()返回的是key value 为项的列表,iteritems()则返回的是一个迭代器,所以内存开销比较小,实际工作中建议使用iteritems()
下面跟我一起敲