代码改变世界

Python字典数据类型详解

2021-11-17 17:25  何小六soso  阅读(624)  评论(0编辑  收藏  举报

Python字典数据类型详解

字典也是一种主机的集合,有键值对组成,字典中的键不能重复
字典中的键必须是不可变的数据类型,常用:字符串、整型

字典定义

  • 使用{}定义 变量=

  • 使用等关键字传参 变量=

  • 数据类型的转换 变量=dict([['a',1],['b',2]...])

  • 压缩函数 zip()定义 变量=dict(zip(list1,list2))

# 使用{}定义 变量={键:值,键:值,键:值....}
vardict={'a':1,'b':2,'c':3}
# 使用等关键字传参 变量={键=值,键=值,键=值....}
vardict=dict(name='python',sex='男',age=99)
# 数据类型的转换 变量=dict([['a',1],['b',2]...])
vardict=dict([['name','python'],['sex','男'],['age',99]])
# 压缩函数zip()
var1=[1,2,3,4]
var2=['a','b','c']
vardict=dict(zip(var1,var2))
print(vardict) # {1: 'a', 2: 'b', 3: 'c'}

字典操作

# 字典的操作
vardict=dict(name='python',sex='男',age=99)

# 获取元素
res=vardict['name'] # python
print(res)

# 修改元素
vardict['name']='java' # {'name': 'java', 'sex': '男', 'age': 99}
print(vardict)

# 删除元素
del vardict['name']
print(vardict) # {'sex': '男', 'age': 99}
vardict.pop('sex')
print(vardict)

# 添加元素
vardict['name']='python'
print(vardict) # {'age': 99, 'name': 'python'}
vardict['name']='java' # key重复数据被覆盖
print(vardict) # {'age': 99, 'name': 'java'}

# 检测key是否存在
res='name' in vardict
print(res) # True
res='address' not in vardict
print(res) # True

# 获取字典长度
print(len(vardict)) # 2

# 获取字典中的所有key
print(vardict.keys()) # dict_keys(['age', 'name'])

# 获取字典中所有的value
print(vardict.values()) # dict_values([99, 'java'])

# 获取字典中所有的键值对
print(vardict.items()) # dict_items([('age', 99), ('name', 'java')])

# 遍历字典
for k,v in vardict.items():
    print(k,v,end=' ') # age 99 name java
print("==============")

# 遍历字典key
for k in vardict.keys():
    print(k,end=' ') # age name
print('')
# 遍历字典value
for v in vardict.values():
    print(v,end=' ') # 99 java
    
    # dict.pop(),通过key删除字典中的键值对
print(vardict.pop('name')) # 99 java python

# dict.get(),使用get函数获取字典中不存在的元素不会报错
print(vardict.get('sex')) # 男

# vardict.update() 更新字典元素,对应的key存在则更新,不存在则添加,返回值为none
print(vardict.update(name='java')) # None
print(vardict) # {'sex': '男', 'age': 99, 'name': 'python'}
print(vardict.update(name='python')) # None
print(vardict) # {'sex': '男', 'age': 99, 'name': 'python'}

字典推导式

# 字典推导式
vardict=dict(name='python',sex='男',age=99)
# 字典中的key和value互换位置
newdict={}
for k,v in vardict.items():
    newdict[v]=k
print(newdict)

# 字典推导式,去除奇数键值对
vardict={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6,'g':7,'h':8}
newdict={k:v for k,v in vardict.items() if v % 2 == 0}
print(newdict)