字典(dict)是Python内建数据类型。在其它的某些语言中,字典可能被称为联合内存或联合数组。列表是以连续的整数为索引,而字典是以关键字为索引。关键字可以是任意不可变类型,通常用字符串或数值。如果元组中只包含字符串或数字,它也可以做为字典的关键字,但是它如果直接或间接的包含了可变对象,就不能当做关键字。不能用列表做关键字,因为列表可以用索引、切割或者append()和extend()等方法改变列表的数据。
字典的每个键值对(key:value)用冒号:分割,每个对之间用逗号(,)分割,整个字典包括在大括号{}中 这也是字典输出的方式。
字典的常用操作和内置的方法
1、按key存取值:可存可取
>>> dic={'name':'monicx'} >>> dic['name'] 'monicx' >>> dic['age']=23 >>> dic {'name': 'monicx', 'age': 23} >>>
注意:要加入一个键值对时,当字典中没有这个键的时候,就会将这个键值加进入字典当中,如果已经存在,就会覆盖这个键的值。
2、长度len()
计算字典中键值对的个数。
3、成员运算in和not in
它是判断字中是否有这个键。
>>> dic={'name':'monicx','age':23} >>> 'name'in dic True >>> 'name'not in dic False
4、删除
用del 或者pop()来删除,唯一的区别就是pop()删除时有返回被删除的键值。
>>> dic={'name':'monicx','age':23} >>> del dic['name'] >>> dic {'age': 23} >>> res=dic.pop('age') >>> res 23 >>> dic {}
popitem()删除最后一个键值对,并返回这个键值对。
>>> dic={'name':'monicx','age':23} >>> dic.popitem() ('age', 23) >>> dic {'name': 'monicx'}
注意:pop()中有的第二个参数是,当移除这个键它不在这个字典里面的时候,会反回这个参数,这个参数最好用None,也可以自己定义。
5、键keys(),值values(),键值对items()
>>> dic={'name':'monicx','age':23} >>> dic.keys() dict_keys(['name', 'age']) >>> dic.values() dict_values(['monicx', 23]) >>> dic.items() dict_items([('name', 'monicx'), ('age', 23)])
keys()#就是将键分别取出来放在一个列表里。
values() #就是将值分别取出来放在一个列表里。
items()#就是将字典里的每键值对以元组的形式存放到一个列表里。
6、setdefault()
如果这个键已经有存在就不覆盖,返回原key对应的值,不存在就添加进去,返回新key对应的值。
>>> dic={'name':'monicx','age':23} >>> dic.setdefault('sex','male') 'male' >>> dic {'name': 'monicx', 'age': 23, 'sex': 'male'}
7、update()
新字典中有,而老字典中没有则添加,如果都有,则覆盖
>>> dic={'name':'monicx','age':23} >>> dic.update({'name':'lili','sex':'male'}) >>> dic {'name': 'lili', 'age': 23, 'sex': 'male'}
8、fromkeys()
得到一个字典:
good_info={ 'name':None, 'price':None, 'count':None }
>>> good_info=({}.fromkeys(['name','price','count'],None)) >>> good_info {'name': None, 'price': None, 'count': None} >>>
9、get()
>>> dic={'name':'monicx','age':23} >>> dic.get('name') 'monicx'
10、clear()
清除字典
>>> dic={'name':'monicx','age':23} >>> dic.clear() >>> dic {}