字典(dict):以键值对方式存在的无序数据的组合就是字典,为什么这么说呢,大家都知道我们所学到的序列如列表,集合等都是只能存放单个数据,如果想存放有关联性的数据是比较麻烦的,比如说我们想让一个人的姓名与他的性别对应起来存储,这时候用列表等就比较麻烦,这时我们就引出了字典这个概念,
定义:以键值对方式存在的无序数据的组合就是字典,
特点:字典存储数据时是以键值对的方式进行存储,所谓的键值对(Key&values)就是说一个键对应一个值,那么相关联的数据也就可以存储啦
格式: dicts = { ‘a’ : ‘A’ } #注意此时数据是以冒号连接的,标识符号为大括号 {} 。
字典的简单创建:
1.创建一个空字典
dicts = {} 或者 vardict = dict()
2.创建有多个数据的字典
2.1 dicts = { 'a':'A','b':'B','c':'C' }
2.2 dicts = dict ( { 'a':'A','b':'B','c':'C' } )
2.3 dicts = dict(a = 'A',b = 'B',c = 'C')
2.4 lists = [
['a','A'],
['b','B']
]
res = dict(lists) ——> print(res) #注意,列表转字典时只能这种结构转换
2.5 keys = ['a','b','c']
values = ['A','B','C']
res = dict(zip(keys,values))
print(res) #这种格式也可以得到字典
字典的基本操作:
创建一个使用字典: vardict = { 'a':'A','b':'B','c':'C','d':'D','e':'E','f':'F' }
1.访问字典中的值
print ( vardict [ 'b'] ) #访问时书写字典的key,可以得到字典的value
2.修改字典
vardict['e'] = EE #此时操作就会将原有的e对应的E改成EE
vardict['g'] = G #在字典中增加一个键值对 g->G
3.删除字典
del vardict ['c'] #次操作删除了原有字典c所对应的键值对
4.成员检测
print( 'c' in vardict) #检测成员c是否在字典vardict中,这样只能检测key
字典的遍历操作
方法一:#先遍历键,在取值
for i in vardict:
print( i, vardict [ i ] )
方法二:同时遍历键和值
for x,y in vardict.items():
print(x,y)
字典推导式
创建所用字典
vardict = { 'a':'A','b':'B','c':'C'' }
vardict2 = { 'name':'老王','age':'23','sex':'man'}
1.普通推导式
print( { '*' + k + '*' : '*' + k + '*' for k,v in vardict.items() })
2.带有判断条件的表达式
print ( k:v for k,v in vardict2.items() if len(2) == 2 })
3.多循环的字典表达式
print( {a+x : b+y for a,b in vardict.items() for x,y in vardict2.items()})
字典的相关函数
创建所用字典
vardict = { 'a':'A','b':'B','c':'C'' }
1.clear() 清空字典
vardict.clear() #此操作会清空字典的所有内容,请注意
2. copy() 复制字典
new_vardict = vardict.copy()
3. fromkeys() 使用序列(当做字典的key)和指定的值做一个字典
lists = [1,2,3,4,5,6]
new_vardict = dict.fromkeys(lists,'Python') 或者 new_vardict = ‘ ’.fromkeys(lists,'Python')
4.get() 获取字典中指定键的值
vardict.get ('a' ,'返回值') #等价于 var['a'] #注意get有返回值,查询未果为后面的返回值
5.setdefault() 向字典中添加一个元素(不存在的键添加,存在的键不动)
vardict.setdefult('f','F')
6.update()修改字典中的元素
vardict.update(a = 'A') 或者 var.update({'a':'A'})
7.pop()删除字典中指定的元素
vardict.pop('b')
8.popitem()随机删除字典中的一个元素
vardict.popitem()
9.keys()获取字典中的所有键组成的容器
print(var.keys())
10.values()获取字典中的所有键组成的容器
print(var.values())
11.items()获取字典中的所有键和值组成的容器
print(vardict.items())