我想当第一

本节内容:

一.字典的定义及操作

字典也是一种数据的集合,由键值对组成的数据集合,字典中的键不能重复

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)