我想当第一
本节内容:
一.字典的定义及操作
字典也是一种数据的集合,由键值对组成的数据集合,字典中的键不能重复
1.字典的定义
1:使用{}定义
vardict = {‘a’:1,‘b’:2}
2:使用dict(key = value,key = value)函数定义
vardict = dict(name = ‘gsw’,age = 21)
3:使用数据类型的转换 dict(二级容器类型)列表或者元组,是二级容器才可以转
vardict = dict([[‘a’,1],[‘b’,2]])
2.字典的操作
#字典不可以使用*和+操作
var1 = {‘a’:1,‘b’:2}
var2 = dict(name = ‘gsw’,age = 21) #定义两个字典
_
获取操作
_res = var2[‘name’]
print(res)
_#修改操作
_res = var2[‘name’] = ‘sw’
print(res)
#删除操作
del var2[‘name’]
print(var2)
_#添加操作
_var2[‘address’] = ‘安徽’
print(var2)
_#如果字典中key值重复了,会被后面的定义覆盖
_var2[‘address’] = ‘宣城’
print(var2)
_#成员检测-只能检测key,无法检测value
_res = ‘name’ in var2
res = ‘name’ not in var2
print(res)
_#获取字典的长度
_res = len(var2)
print(res)
_#获取当前字典的所有key 键
_res = var2.keys()
print(res)
_#获取当前字典的所有value 值
_res = var2.values()
print(res)
_#获取当前字典的所有键值对
_res = var2.items()
print(res)
#对字典进行遍历
for i in var2:
print(i) #只能获取当前的key
_print(var2[i]) #通过字典的key获取对应的value
for k,v in var2.items():
print(k,v,end=‘,’) #使用items()函数,可以在遍历时获得key和value
for k in var2.keys():
print(k) #遍历key
for v in var2.values():
print(v) #遍历value_
二.字典的相关函数
len(字典) 获取字典的键值对个数
dict.keys() 获取当前字典获取的所有key键组成的列表
dict.values() 获取当前字典获取的所有value键组成的列表
dict.items() 获取当前字典获取的所有键值对
_#dict.pop(key) 通过key从当前字典中弹出键值对 删除
_vardict = {‘name’:‘gsw’,‘age’:22}
res = vardict.pop(‘name’)
print(res)
print(vardict)
_#使用key获取字典中不存在的元素会报错,可以使用get方法获取,存在则返回,不存在则返回None
_print(vardict.get(‘jjj’))
#divt.update() 更新字典,对应key存在则更新,不存在则田间
_vardict.update(name = ‘sw’,age = 20,address =‘安徽’)
vardict.update({‘name’:‘china’,‘address’:‘宣城’}) #这两种方式都可以
_print(vardict)
_#dict.setdefault(key,value),如果字典存在key则返回值,不存在则插入value值,value默认为None
_res = vardict.setdefault(‘name’,123)
print(res)
三.字典推导式
示例一:把字典中的键值对位置进行交换
#普通方法实现字典中的键值交换
_vardict = {‘a’:1,‘b’:2}
newdict = {}
for k,v in vardict.items():
newdict[v] = k
print(newdict)
#使用字典推导式
_newdict = {v:k for k,v in vardict.items()}
print(newdict)
示例二:保留为偶数的项,并将键值对位置进行交换
vardict = {‘a’:1,‘b’:2,‘c’:3,‘d’:4}
newdict = {}
#普通方式
for k,v in vardict.items():
if v%2 == 0:
newdict[v] = k
print(newdict)
_#字典推导式
_newdict = {v:k for k,v in vardict.items() if v%2 == 0}
print(newdict)