假设我们需要在一个庞大的数据集中查找特定人员的信息。如果数据是存储在列表中,使用列表时,你很可能需要逐个遍历,最坏情况下要检查所有元素才能找到目标。当数据量达到十万、百万级时,这种线性搜索会非常缓慢。那是否还有其他快速的方式吗?
思考1:比如我们要存储一个人的信息,姓名:Tom,年龄:20周岁,性别:男,如何快速存储。
思考2:在日常生活中,姓名、年龄以及性别同属于一个人的基本特征。但是如果使用列表对其进行存储,则分散为3个元素,这显然不合逻辑。我们有没有办法,将其保存在同一个元素中,姓名、年龄以及性别都作为这个元素的3个属性。
答:使用Python中的字典
特点:
① 符号为大括号(花括号)=> {}
② 数据为键值对形式出现 => {key:value},key:键名,value:值,在同一个字典中,key必须是唯一(类似于索引下标)
③ 各个键值对之间用逗号隔开
定义:
# 有数据字典dict1 = {'name':'Tom', 'age':20, 'gender':'男'}# 空字典dict2 = {}dict3 = dict()
① 查询方法:
使用具体的某个key查询数据,如果未找到,则直接报错。
② 字典的相关查询方法
使用get获取字典中某个key的value值
# 1、定义一个字典cat = {'name':'Tom', 'age':5, 'address':'美国纽约'}# 2、获取字典的相关信息name = cat.get('name', 'ben') # 如果不存在这个key,value则显示默认值benage = cat.get('age')gender = cat.get('gender', 'male') # get(key, 默认值) 如果默认值为空,不存在key时,value则返回Noneaddress = cat.get('address')print(f'姓名:{name}, 年龄:{age}, 性别:{gender}, 地址:{address}')
提取person中的所有key
# 1、定义一个字典person = {'name':'貂蝉', 'age':18, 'mobile':'18554445'}# 2、提取字典中的name、age以及mobile属性print(person.keys())
提取person字典中的所有value值
# 1、定义一个字典person = {'name':'貂蝉', 'age':18, 'mobile':'18554445'}# 2、提取字典中的所有value值print(person.values())
使用 items() 方法提前数据
# 1、定义一个字典person = {'name':'貂蝉', 'age':18, 'mobile':'18554445'}# 2、调用items方法获取数据# print(person.items()) # 输出结果:dict_items([('name', '貂蝉'), ('age', 18), ('mobile', '18554445')])# 3、结合for循环对字典中的数据进行遍历for key, value in person.items(): print(f'{key}:{value}')
今日学习完毕,课后作业:
已知一个仓库的库存为:inventory = {"A001": 15, "A002": 8, "A003": 22, "A004":0},请按照以下要求进行操作:
1、获取商品A002的库存;
2、查询不存在的商品A999,设置默认值为0;
3、获取所有商品编号;
4、获取所有库存数量;
5、获取所有商品编号和库存数量。