Python:字典操作总结

 字典是Python中唯一的映射类型

[注]:字典中数据是无序排放的

一、字典的创建方法

方法1:用大括号包裹键值对从而创建字典

1 addict={}#创建一个空字典
2 addict={key1:value1,key2:value2,...}

方法2:利用内建函数dict()来创建字典

(1)利用dict()创建空字典

d=dict() #创建空字典

(2)利用dict()以传入关键字的方式创建字典

1 user=dict(name='Tomwenxing',age='23',job='student',salary='20000000')
2 print(user)

(3)利用dict()以映射函数的方式创建字典

1 location=dict(zip(['nation','province','city'],['China','ZheJiang','HangZhou']))
2 print(location)

(4)利用dict以可迭代对象的方式创建字典

1 message=dict([('name','Tomwenxing'),('sex','male'),('job','student')])
2 print(message)

方法三:利用dict.fromkeys()来创建字典

语法:dict.fromkeys(seq[,value])

[说明]:

(1)fromkeys()方法用于创建一个新的字典,以序列seq中元素做字典的键值,value为字典所有键对应的初始值

(2)seq——字典键值列表或元组

    value——可选参数,设置键序列seq的值,默认为None

1 seq=('name','age','job','salary')
2 d=dict.fromkeys(seq)
3 print(d)

1 seq=('name','age','job','salary')
2 d=dict.fromkeys(seq,20000)
3 print(d)

 

二、字典的基本操作

Question1:如何访问字典dict中的值
Answer:dict[key]形式返回key对应的value,如果key不存在则会在字典中引发一个KeyError


Question2:如何检查key是否在字典dict中
Answer:

a、用dict.has_key(key)方法,若key在字典dic中返回True,否则返回False(Python 3.X 里不包含 has_key() 函数,被 __contains__(key) 替代
b、用in或not in 来判断


Question3:如何更新字典dict
question3-1:如何在字典dict中添加一个新的键值对
answer:以dict[new_key]=new_value的形式向字典中添加新的键值对
question3-2:如何在字典dict中更新一个键值对
answer:以dict[old_key]=new_value的形式更新字典中的键值对
question3-3:如何在字典dict中删除一个键值对
answer:

a、del dict[key]删除字典中键为key的项/del dict删除整个字典
b、dict.pop(key)删除字典中键为key的项并返回key对应的value值

 

三、字典的相关操作

A、内建函数对字典的操作

1.len():返回字典的长度

2.hash():返回对象的哈希值,可以用来判断一个对象是否用来作为字典的键

3.dict():工厂函数,用来创建字典

B、字典的方法

1.dict.copy():返回一个字典的浅拷贝副本

2.dict.clear():删除字典中的所有项或元素

3.dict.fromkeys(seq,val=None):创建并返回一个新字典,以seq中的元素做该字典的键,value做该字典中所有键对应的初始值(默认为None)

4.dict.get(key,default=None):返回字典中key对应的值,若key不存在于字典中,则返回default的值(默认为None)

1 user={'name':'Tomewenxing','age':'23','job':'student','sex':'male'}
2 print(user.get('name')) #返回键name对应的value值
3 print(user.get('girlfriend')) #默认返回None
4 print(user.get('salary',20000000))#返回参数default的值

 5.dict.items():返回一个包含所有(键,值)元组的列表

1 user={'name':'Tomewenxing','age':'23','job':'student','sex':'male'}
2 print(user.items())

6.dict.keys():返回一个包含字典所有key的列表

1 user={'name':'Tomewenxing','age':'23','job':'student','sex':'male'}
2 print(user.keys())

7.dict.pop(key[,default]):和get方法相似。如果字典中存在key,就删除并返回key对应的value;如果key不存在,并且没有给出default的值,则引发keyerror异常

1 user={'name':'Tomewenxing','age':'23','job':'student','sex':'male'}
2 print(user.pop('sex'))
3 print(user)
4 print(user.pop('sex','male'))
5 print(user.pop('sex')) #错误,引发keyerror异常

8.dict.popitem():随机返回并删除字典中的一对键和值;如果字典已经为空了,却调用此方法,就报keyerror异常

[注]:以(key,value)的形式返回键值对

9.dict.setdefault(key,default=None):和get方法相似。如果键key不存在于字典中,则会添加键并将键对应的value值设为参数default的值;如果key已经存在了,则没有任何影响

[注]:key——查找的键值

         default——键不存在时,设置的默认键值

1 user={'name':'Tomewenxing','age':'23','job':'student','sex':'male'}
2 user.setdefault('name','Tom')
3 user.setdefault('salary',200000)
4 print(user)

10.dict.update(dict2):将字典dict2的键值对更新到字典dict中

1 user={'name':'Tomewenxing','age':'23','job':'student','sex':'male'}
2 user_add={'salary':2000000,'girlfriend':None}
3 user.update(user_add)
4 print(user)

11.dict.values():返回一个包含字典所有value的列表

12.dict.has_key(key):用于判断键是否存在于字典中,如果键在字典dict里返回true,否则返回false

[特别注意]: Python 3.X 里不包含 has_key() 函数,被 __contains__(key) 替代

user={'name':'Tomwenxing','age':'23','job':'student','sex':'male'}
print(user.__contains__('name'))
print(user.__contains__('salary'))

 

四、字典使用的注意事项

1、在字典中不允许一键对应多个值

2、字典的键值必须是可哈希的。

posted on 2017-08-13 16:19  Tom文星  阅读(664)  评论(0编辑  收藏  举报

导航