第四节:基本数据类型之字典(dictionary)
字典
字典也是一种集合,其元素包含两部分,key和value,对元素的个数没有限制
可以动态的增加删除元素,插入元素时不能指定位置
字典使用{}进行表示,字典表达式为:dict={key:value}
字典中的key值是唯一值,为不可变类型,可以为字符串,数字和元组
value值可以重复,并且value可以为多种数据类型
创建字典的方式:
1、d={key:value,key1:value1};d=dict(key=value,key1=value1)
创建空字典:d={}
2、使用映射方式创建字典
zip(list1,list2):其中两个列表的长度一致,并且根据列表元素所在位置进行一一映射
使用zip映射时,生成的是生成器对象,要转换为字典
list2=[2,2,2]
name=zip(list1,list2)
print(dict(name))
print(type(dict(name)))
当创建字典时,如果key值相同,那么最后的一个key对应的value覆盖其他相同的key。
字典的特性
1、在一个字典中,不允许同一个键出现两次,也就是键不能相同
2、字典中的键必须为不可变的,可以使用数字,元组或字符串,但是不可使用列表
字典的基本接口函数
1、计算元素的个数:
len(dict)
2、添加元素,通过key和value值进行添加元素:
dict[key]=value
3、修改元素的值:
dict[key]=value
4、通过key值获取元素的值:
dict.get(key,default=None)
dict代表指定字典,key代表字典中要查找的键,default代表指定的键不存在时返回的默认值。该方法返回结果为指定键的值,如果键不在字典中,就返回默认值None。
可以设置默认值
如:
print(d.get("name","不存在"))
这里的意思是没有找到key值时默认输出不存在
5、返回一个字典的所有键:
dict.keys()
dict代表指定字典,keys()方法不需要参数。返回结果为一个字典的所有键,所有键存放于一个元组数组中,元组数组中的值没有重复的。
6、返回字典中的所有值:
dict.values()
dict代表指定字典,values()方法不需要参数。返回结果为字典中的所有值,所有值存放于一个列表中,与键的返回不同,值的返回结果中可以包含重复的元素
7、获取键值对的列表:
dict.items()
该值的类型为dict_items,可以使用遍历方式 for in 来获取元素,得到的元素是一个元组,如: for i in dict.items() 其中‘i’的数据类型为元组
8、更新值,也就是使用一个字典对另外一个字典的值进行更新,如果更新字典的key值在被更新字典中含有则更新覆盖,若无则被更新的字典中添加元素:
dicta.update(dictb)
如:a.update(b),b字典中key值如果在a字典中存在,那么更新覆盖a字典的值,如果不存在,则在a字典中新增b字典的值。
注意:a字典的值会变化,b字典的值不会变化
9、清除字典中的所有元素:
dict.clear()
10、删除指定的键以及值:
dict.pop(key)
11、复制字典,返回一个新的字典,字典中的元素与原来的一致:
dict1=dict.copy()
dict1与dict中每个元素都是一致的
12、in操作符,用于判断某个值是否存在于字典的key或者values中,如果存在则为true,不存在则为false:
key in dict.keys()/value in dict.values()
13、not in 操作符,用于判断某个值是否不存在于字典中的key或value中,如果不存在则为true,存在则为false:
key not in dict.keys()/value not in dict.values()
14、删除整个字典
del dict
删除字典后就不能进行访问了
15、formkeys()方法
用于创建一个新的字典
语法格式:
dict.fromkeys(seq[,value])
dict代表指定字典,seq代表字典键值列表,value代表可选参数,设置键序列(seq)的值。
fromkeys()如果没有设定value值,那么每个键默认对应的值为None,如果有值,那么每个键对应的值为设定的值
16、setdefault()方法
用于获得于给定键相关的值
语法格式:
dict.setdefault(key,default=None)
dict代表指定字典,key代表查找的键值,default代表键不存在时设置的默认键值
setdefault()方法返回key在字典中对应的值,如果键不存在于字典中,就会添加键并将值设为默认值,然后返回新设置的默认值。