Python 基础 4-1 字典入门
程序员文章站
2022-05-18 21:13:35
引言 字典 是Python 内置的一种数据结构,它便于语义化表达一些结构数据,字典是开发中常用的一种数据结构 字典介绍 1. 字典使用花括号 或 来创建,字典是可以嵌套使用的 2. 字典是成对出现的,字典以键(key)值(value)对形式体现 3. 键与值之间用冒号 分隔,每个键值对之间用逗号 分 ......
引言
字典 是python 内置的一种数据结构,它便于语义化表达一些结构数据,字典是开发中常用的一种数据结构
字典介绍
- 字典使用花括号
{}
或dict
来创建,字典是可以嵌套使用的 - 字典是成对出现的,字典以键(key)值(value)对形式体现
- 键与值之间用冒号
:
分隔,每个键值对之间用逗号,
分隔开 - 字典的
key
是唯一的,而value
可以重复出现 - 字典的
key
不使用中文或其他字符,这是业内约定俗成的做法
创建字典
字典可以使用花括号
{}
或dict
函数来创建
1. 使用花括号 {}
创建字典
注意:字典每个键值对之间要用逗号 ,
分隔开
emp = {'name':'张三' , 'age':22 , 'sex':'男'} print(emp) # 运行结果:{'name': '张三','age': 22, 'sex': '男'} # 字典打印时会将花括号也打印出来 print(type(emp)) # 运行结果:<class 'dict'> # 从以上打印类型可以看出变量属于 dict 字典类型
2-1. 使用 dict
函数创建字典
dict
是 python 的内置函数,使用该函数创建列表时,key 不需要加引号dict
函数的效果和以上示例中的运行效果是相同的
emp = dict(name='张三' , age=22,sex='男') print(emp) # 运行结果:{'name': '张三', 'age': 22, 'sex': '男'}
2-2. fromkeys
方法
fromkeys
方法与dict
函数搭配使用,它允许使用序列来创建字典 key
emp = dict.fromkeys(['name' , 'age' , 'sex']) print(emp) # 运行结果:{'name': none, 'age': none, 'sex': none}
如果不为 fromkeys
方法指定默认值,默认情况下返回 none
如果需要改变这种情况,只需在 fromkeys
方法第二个参数传入默认值即可,如下示例
emp = dict.fromkeys(['name' , 'age' , 'sex'] , 'n/a') print(emp) # 运行结果:{'name': 'n/a', 'age': 'n/a', 'sex': 'n/a'}
默认值 n/a
不是必须的,可按照项目实际需求传入对应值,或不传入值
列表取值
字典取值有两种方式
1. 方式一
在字典变量后面使用方括号传入字典的 key 进行取值
这种方法有一个弊端:如果字典中不存在 key ,会报 keyerror
错误
emp = {'name':'张三' , 'age':22 , 'sex':'男'} print(emp['name']) # 运行结果:张三
2. 方式二
使用字典
get
方法取值
如果不存在 key ,返回 none
或自己指定的值,例如 n/a
,以下为示例代码
emp = {'name':'张三' , 'age':22 , 'sex':'男'} v = emp.get('name') print(v) # 运行结果:张三
emp = {'name':'张三' , 'age':22 , 'sex':'男'} v = emp.get('dept','其他部门') print(v) # 运行结果:其他部门
字典的写操作
字典增删改查操作
更新
python 字典秉承:“有则更新,无则新增”原则
1. 更新字典 value
emp = {'name':'张三' , 'age':22 , 'sex':'男' , 'dept':'研发部'} emp['dept'] = '推广部' print(emp) # 运行结果:{'name': '张三', 'age': 22, 'sex': '男', 'dept': '推广部'}
2. 批量更新
使用
update()
方法批量更新字典,在该方法内传入对应对应的 key 、value
emp = {'name':'张三' , 'age':22 , 'sex':'男' , 'dept':'研发部'} emp.update(age=18 , dept='推广部') print(emp) # 运行结果:{'name': '张三', 'age': 18, 'sex': '男', 'dept': '推广部'}
新增
列表的新增操作和更新操作基本相同,python 字典秉承:“有则更新,无则新增”原则
当字典存在对应的 key 时执行更新,当字典不存在对应的 key 时执行新增
1. 新增操作
emp = {'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部'} emp['job'] = '销售' print(emp) # 运行结果:{'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部', 'job': '销售'}
2. 批量操作
emp = {'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部'} emp.update(dept='推广部' , job='推广员') print(emp) # 运行结果:{'name': '张三', 'age': 22, 'sex': '男', 'dept': '推广部', 'job': '推广员'}
删除
1. 使用 pop()
方法删除
该方法删除字典给定的键及对应的值
pop()
可返回值,返回值为被删除的值
emp = {'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部'} dept = emp.pop('dept') print(emp) # 运行结果:{'name': '张三', 'age': 22, 'sex': '男'} print(dept) # 运行结果:研发部
2. 使用 popitems()
删除字典最后一个 kv
popitems()
返回的是一个元组
emp = {'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部'} kv = emp.popitem() print(emp) # {'name': '张三', 'age': 22, 'sex': '男'} print(kv) # 运行结果:('dept', '研发部')
3. 清空列表 clear()
emp = {'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部'} emp.clear() print(emp) # 运行结果:{}