大家早上好,本人姓吴,如果觉得文章写得还行的话也可以叫我吴老师。欢迎大家跟我一起走进数据分析的世界,一起学习!
感兴趣的朋友可以关注我的数据分析专栏,里面有许多优质的文章跟大家分享哦。
由题可得,这篇博客给大家讲的内容是Python中的字典dict相关知识点,Python新手们快来学习呀!
字典 dict
类似这种销售信息的数据结构,我们使用元组或者列表存储是可以的。
top_sales = [('Peter', 213), ('John', 253), ('Tony', 284), ('Henry', 205), ('Mike', 280)]
可以很方便的取出在这个榜单中第一名、第二名或者任意一名的销售数据。但它有一个缺点,如果我们想取出特定的某个销售人员的数据时,它会很麻烦。比如如果想要找出Mike的数据,只能去循环遍历,一个个的去比对。
for sale, amount in top_sales:
if sale == 'Mike':
print(sale, amount)
这样不光写起来麻烦,执行效率也很低,假设这是一个庞大的销售数据库,那要花多少时间寻找呢?所以必须使用字典。
1 字典的定义
使用花括号,可以直接定义字典
sales = {
'Peter': 213,
'John': 253,
'Tony': 284,
'Henry': 205,
'Mike': 280
}
每一行冒号左边的是键(key),右边的是值(value),称作键值对,以逗号分隔开。在这里我们故意写成每行一个键值对,实际并不要求每行一个,只要用逗号分隔开来就可以。键是不能重复的,值可以重复。
对于top_sales 这种两个一组、一一对应的列表来说,可以直接转换为字典。
sales = dict(top_sales) # sales现在的值变成了
{
'Peter': 213,
'John': 253,
'Tony': 284,
'Henry': 205,
'Mike': 280
}
2 增删改查
有了字典,那现在就可以快速的取出任意一个人的数据了
sales['Mike']
sales['Henry']
注意,键的名称是区分大小写的,‘Mike’ 和 'mike’分别对应了不同的键。
sales['mike'] # KeyError: 'mike'
这行代码将会报错,因为不存在’mike’这个键。在访问之前,需要先往字典中添加数据相应的键:
# 值可以先设置为None或者0
sales['mike'] = 0
修改字典中的数据:
sales['mike'] = 300
删除字典中的数据
del sales['mike']
3 遍历字典
字典的遍历和列表、元组、字符串有所区别,由于它的每一项都是一个键值对,所以在遍历时也要注意。
for key_value in sales.items():
print(key_value)
注意 sales.items() 这种写法,在遍历字典时,这是一种通用的写法。items函数将字典内的内容转换成了一种可迭代的序列,以供for循环遍历,遍历出来的每一项是一个元组,包含了键和值。所以通常 我们直接写成这样:
for key, value in sales.items():
print(key, value)
注意中间的逗号和最后的打印结果。
如果不使用items函数,那遍历的就是字典所有的key。
for key in sales:
print(key)
4 字典函数
字典有一些函数和列表是一样的,比如clear, copy,这两个不再介绍,我们来看看其他的函数。
get
如果直接访问字典中一个不存在的key,就会产生报错,所以,通常我们如果不确定是否存在某个key 时,会先判断一下:
if 'mike' in sales:
print(sales['mike'])
else:
print('mike', 0)
in关键字又一次派上用场了, 在这里用in来检查字典中是否包含"mike"这个键,如果包含则返回True, 无论"mike"所对应的值是否为空。这样的写法,很麻烦,每次都要先判断,再查询,这时候get函数就派上用场了。
sales.get('mike', 0)
这一行短短的代码就实现了上面4行代码的功能,它表示在字典中查询’mike’键所对应的值,如果不存在’mike’键,则返回0。这里的0可以替换成任何其他的默认值,这样就极大简化代码逻辑。
keys/values
如果只想单独列出所有的销售人员名单,可以这样写:
sales.keys()
可以对它进行遍历
for sale in sales.keys():
print(sale)
如果只想计算出所有销售人员的销售额总和,也就是公司总销售额,可以直接取出value部分并求和: sum(sales.values())
结束语
看完这篇,还有更多知识点分享给你哦,自己慢慢找哈,就在下面链接。
推荐关注的专栏
👨👩👦👦 机器学习:分享机器学习实战项目和常用模型讲解
👨👩👦👦 数据分析:分享数据分析实战项目和常用技能整理
往期内容回顾
💚 学习Python全套代码【超详细】Python入门、核心语法、数据结构、Python进阶【致那个想学好Python的你】
❤️ 学习pandas全套代码【超详细】数据查看、输入输出、选取、集成、清洗、转换、重塑、数学和统计方法、排序
💙 学习pandas全套代码【超详细】分箱操作、分组聚合、时间序列、数据可视化
💜 学习NumPy全套代码【超详细】基本操作、数据类型、数组运算、复制和试图、索引、切片和迭代、形状操作、通用函数、线性代数
关注我,了解更多相关知识!
CSDN@报告,今天也有好好学习