字典是一种新的数据结构,称之为映射(mapping)
字典的表显形式:dict
字典的作用是用来存储对象的容器
列表存储数据性能很好,但是查询数据性能很差
字典中每一个元素都有唯一的一个名字,通过名字可以快速查找到指定的元素
唯一的名称称之为键(key),通过key可以查询到value,称之为值(value)
所以字典我们称之为键值对
每个字典可以有多个键值对,每一个键值对称之为项(item)
创建字典
1、使用‘{}’来创建字典
语法:{key:value,key:value…}
d={'name':'艾伦','age':18}
2、dict()函数
b=dict(name='艾伦',age=18)
print(b)
在字典中键和值可以是哪些内容?
值可以是任意对象
键可以是任意不可变的对象(int,str,bool,tuple…)
注:字典中的键是不能重复的,若出现重复后面的会替换前面的
d=dict([('name','阿伦'),('age',18)])
print(d)
通过上面代码可以看出dict()函数可以把一个包含双值子序列转换成字典
注:双值序列:序列中只有两个值。例:[2,3],(1,2),‘xc’
子序列:如果序列当中的元素也是序列,那么称之这个元素为子序列。例:[(1,3)]
字典当中键是不能重复的,若出现重复,后面的会替换前面的
a={'name':'阿伦','age':18,'name':'阿三'}
print(a)
获取字典里的值
语法:d[key]—key要用引号引起来
a={'name':'阿伦','age':18}
print(a['name'])
get()获取字典里的值
语法:d.get(‘key’)
a={'name':'阿伦','age':18}
a.get('name')
使用get()函数获取字典当中的值时,当获取的键不存在时会返回none;也可以指定一个默认值,作为第二个参数,当获取不到这个键的值时返回该默认值
a={'name':'阿伦','age':18}
a.get('adress','字典中不存在这个键')
修改字典
语法:d[key]=value
a={'name':'阿伦','age':18,}
a['name']='阿三'
当修改时,键存在覆盖原来的值,键不存在时就会在字典后面新增一个键值对
a={'name':'阿伦','age':18,}
a['address']='chengdu'
setdefault(key[,default])可以用来向字典当中添加key-value(键值对)
a={'name':'阿伦','age':18,}
a.setdefault('name','阿三')
a.setdefault('phone',13212312312)
print (a)
通过上面代码可以看出,通过setdefault()函数想字典中添加键值对时,若key已经存在,则返回key的值,不对字典做任何操作;若key不存在时,则向字典当中添加这个key并设置value
update()函数
该函数能将其他字典中的key-value添加到当前的字典当中
a={'a':1,'b':2,'c':3}
b={'d':4,'e':5,'f':6}
a.update(b)
print(a)
删除
使用del()函数
语法:d.del[key]
a={'a':1,'b':2,'c':3}
a.del('a')
popitem()函数,随机删除字典当中的一个键值对,一般情况都是删除最后一个键值对
删除之后它会将key-value作为返回值
a={'a':1,'b':2,'c':3}
b=a.popitem()
print(b)
pop()函数
语法:d.pop(key[default])
a={'a':1,'b':2,'c':3}
print(a.pop('a'))#删除存在的键
print(a.pop('d','字典中不存在这个键'))#删除不存在的键
pop()函数是根据key来删除字典当中的键值对,并返回key对应的value
若删除不存在的key,抛出异常(keyerror);如果指定默认值,删除不存在的key时就返回默认值
**clear()**清空字典
a={'a':1,'b':2,'c':3}
a.clear()
print(a)
浅拷贝
只会复制字典本身,若字典中还有字典是不会被复制
copy()用于对字典进行一个浅复制
a={'b':1,'c':'holle','d':3}
b=a.copy()
print(a,id(a))
print(b,id(b))
a={'a':{'c':45,'d':55},'b':3}
b=a.copy()
b['a']['c']=30
print(a,id(a))
print(b,id(b))
遍历字典
1、keys()
该方法返回字典所有的键
d={'name':'xxx','age':'xx'}
print(d.keys())
2、values()
该方法返回一个序列,保存字典的值
d={'a':1,'b':2,'c':3}
print (d.values())
3、items()
该方法返回字典当中所有的项,会返回一个序列,序列中包含双值子序列,双值分别是字典中的key-value
d={'a':21,'b':33,'c':44}
print (d.items())