字典是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、字典的键值必须是可哈希的。