Python学习之路——数据容器部分【字典(dict)】
2024-01-03 01:59:07
目录
?
一、定义
Python字典是一种键值对集合,用于存储和检索数据。他是一个无序的键值对集合,其中键是唯一的,值可以是任何数据类型,如:整数、浮点数、字符串、列表、元组等。
?(一)代码示例
字典的创建可以通过大括号{}或者dict函数来实现
def func01():
# 定义字典字面量
{1: 2, 3: 4, 5: 6}
# 定义字典变量
my_dict01 = {1: '张三', 2: '李四', 3: '王五'}
# 定义空字典
my_dict02 = {}
my_dict03 = dict()
# 定义重复 key 的字典
my_dict04 = {1: '张三', 2: '李四', 3: '王五', 1: '赵六'}
print(my_dict04[1])
重复 key 的结果
可以发现,虽然不会报错,但是 后面 的 value 值会将 前面 的 value 值覆盖掉??
字面量https://blog.csdn.net/weixin_57154777/article/details/133385706?spm=1001.2014.3001.5501
二、字典数据的获取
字典同集合一样,不可以使用下表索引,但是字典可以通过key值来取得对应的value
def func02():
my_dict = {'小明': 10, '小红': 12, '小刚': 13}
age = my_dict['小明']
print(f'指定人物的年龄为:{age}')
三、嵌套字典的定义
(一)需求
某IT公司进行秋招,HR在看简历的时候,看到如下信息
????????张三,男,掌握Python、C++
????????李四,女,掌握Python、Java
????????王五,男,掌握Python,Ps
????????赵六,女,掌握Python、PHP
现你将如上信息进行归总(必须使用字典)
(二)框架
(三)代码
person_data = \
{
'张三': {'男': {'Python': 'C++'}},
'李四': {'女': {'Python': 'Java'}},
'王五': {'男': {'Python': 'Ps'}},
'赵六': {'女': {'Python': 'PHP'}}
}
四、字典的常用操作
(一)功能总览
编号 | 操作 | 说明 |
1 | 字典[key] | 获取指定key对应的value值 |
2 | 字典[key] = value | 添加或更新键值对 |
3 | 字典.pop(key) | 去除key对应的value并在字典内删除此key的键值对 |
4 | 字典.clear() | 清空字典 |
5 | 字典.keys() | 获取字典的全部key,可用于for循环遍历字典 |
6 | len(字典) | 计算字典内的元素数量 |
(二)代码示例
def func04():
my_dict01 = {1: '张三', 2: '李四', 3: '王五'}
# 访问字典中的键值对
name = my_dict01[1]
print(f'指定序号的名字为:{name}')
# 判断字典中是否存在某个键
# 通过 键 进行判断
if 1 in my_dict01.keys():
print('字典中存在指定元素')
else:
print('字典中不存在指定元素')
# 通过 值 进行判断
if '张三' in my_dict01.values():
print('字典中存在指定元素')
else:
print('字典中不存在指定元素')
# 添加或更新键值对
# 添加键值对
my_dict01[4] = '赵六'
print(f'添加元素之后:{my_dict01}')
# 更新键值对
my_dict01[1] = '老张'
print(f'更新字典内容后:{my_dict01}')
# 去除key对应的value并在字典内删除此key的键值对
my_dict01.pop(1)
print(f'去除指定key之后:{my_dict01}')
my_dict02 = {'小明': 10, '小红': 12, '小刚': 13}
# 获取字典的全部的键值对
print(f'字典内全部的键值对为:{my_dict02.items()}')
# 获取字典内的元素数量
my_len = len(my_dict02)
print(f'字典内的元素数量为:{my_len}')
(三)练习案例
某商场有一些货物,为了使得盈利最大化,现将库存量小于40的商品进行价格上涨10%,库存量小于20的上涨20%,库存量小于5%的上涨40%
1、创建商品信息字典
commodity_information = \
{
'商品A': {'inventory': 100, 'price': 800},
'商品B': {'inventory': 620, 'price': 520},
'商品C': {'inventory': 150, 'price': 60},
'商品D': {'inventory': 40, 'price': 40},
'商品E': {'inventory': 1000, 'price': 200},
'商品F': {'inventory': 4, 'price': 5000}
}
2、遍历判断是否符合条件
count = 0
for information in commodity_information.values():
count += 1
if information['inventory'] <= 40:
information['price'] *= 1.1
elif information['inventory'] <= 20:
information['price'] *= 1.2
elif information['inventory'] <= 5:
information['price'] *= 1.4
else:
print(f'第{count}件商品库存数量正常,不对价格进行修改')
print(f'新商品信息{commodity_information}')
3、整体代码
def func05():
commodity_information = \
{
'商品A': {'inventory': 100, 'price': 800},
'商品B': {'inventory': 620, 'price': 520},
'商品C': {'inventory': 150, 'price': 60},
'商品D': {'inventory': 40, 'price': 40},
'商品E': {'inventory': 1000, 'price': 200},
'商品F': {'inventory': 4, 'price': 5000}
}
print(f'原商品信息:{commodity_information}')
count = 0
for information in commodity_information.values():
count += 1
if information['inventory'] <= 40:
information['price'] *= 1.1
elif information['inventory'] <= 20:
information['price'] *= 1.2
elif information['inventory'] <= 5:
information['price'] *= 1.4
else:
print(f'第{count}件商品库存数量正常,不对价格进行修改')
print(f'新商品信息{commodity_information}')
五、总的来说
Python 字典是一种键值对集合,可以用来存储和检索数据。它是一种动态数据类型,可以随时添加、删除或修改键值对。
(一)字典的创建:
- 使用花括号?
{}
?创建一个空字典 - 使用键值对的方式创建字典,例如?
{'key': 'value'}
(二)字典的访问:
- 使用键来访问字典中的值,例如?
dict[key]
- 使用?
in
?关键字检查字典中是否存在某个键
(三)字典的修改:
- 使用键来修改字典中的值,例如?
dict[key] = value
- 使用?
del
?关键字删除字典中的键值对,例如?del dict[key]
(四)字典的遍历:
- 使用?
keys()
?方法遍历字典中的所有键 - 使用?
values()
?方法遍历字典中的所有值 - 使用?
items()
?方法遍历字典中的所有键值对
文章来源:https://blog.csdn.net/weixin_57154777/article/details/135302029
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!