Python 基础 4-1 字典入门

引言

字典 是Python 内置的一种数据结构,它便于语义化表达一些结构数据,字典是开发中常用的一种数据结构

字典介绍

  1. 字典使用花括号 {}dict 来创建,字典是可以嵌套使用的
  2. 字典是成对出现的,字典以键(key)值(value)对形式体现
  3. 键与值之间用冒号 : 分隔,每个键值对之间用逗号 , 分隔开
  4. 字典的 key 是唯一的,而 value 可以重复出现
  5. 字典的 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)
# 运行结果:{}

数据之心

微信公众号「数据之心」

转载于:https://www.cnblogs.com/dazhi-blog/p/11520742.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值