首页 > 其他分享 >数据容器:dict(字典、映射)学会啦!继续学习

数据容器:dict(字典、映射)学会啦!继续学习

时间:2024-05-31 21:29:57浏览次数:20  
标签:映射 欣欣 Value dict Key my 字典

数据容器:dict(字典、映射)

1.字典的应用

字典可以提供基于Key检索Value的场景实现

2.字典的定义

my_dict = {key:value, key:value,...key:value,}

# 定义字典
my_dict1 = {"欣欣": 100, "嘉嘉": 99, "周周": 88}
# 定义空字典
my_dict2 = {}   # 空集合set()
my_dict3 = dict()
print(f"字典1的内容是:{my_dict1}, 类型是:{type(my_dict1)}")
print(f"字典2的内容是:{my_dict2}, 类型是:{type(my_dict2)}")
print(f"字典3的内容是:{my_dict3}, 类型是:{type(my_dict3)}")

# 字典1的内容是:{'欣欣': 100, '嘉嘉': 99, '周周': 88}, 类型是:<class 'dict'>
# 字典2的内容是:{}, 类型是:<class 'dict'>
# 字典3的内容是:{}, 类型是:<class 'dict'>

# 定义重复Key的字典
my_dict1 = {"欣欣": 100, "欣欣": 99, "周周": 88}
print(f"重复Key的字典的内容是:{my_dict1}")

# 重复Key的字典的内容是:{'欣欣': 99, '周周': 88}

3.字典数据的获取

字典同集合一样,不可以使用下标索引,但是字典可以通过key值来取得对应的value。


my_dict1 = {"欣欣": 100, "嘉嘉": 99, "周周": 88}
score = my_dict1["欣欣"]
print(f"欣欣的考试成绩是:{score}")

# 欣欣的考试成绩是:100

4.字典的嵌套

字典的Key和Value可以是任意数据类型(Key不可为字典),那么表明,字典是可以嵌套的。

 需求案例:记录学生各科成绩的考试信息

# 定义嵌套字典
stu_score_dict = {
    "王力鸿": {
        "语文": 77,
        "数学": 66,
        "英语": 33
    }, "周杰轮": {
        "语文": 88,
        "数学": 86,
        "英语": 55
    }, "林俊节": {
        "语文": 99,
        "数学": 96,
        "英语": 66
    }
}
print(f"学生的考试信息是:{stu_score_dict}")

# 学生的考试信息是:{'王力鸿': {'语文': 77, '数学': 66, '英语': 33}, '周杰轮': {'语文': 88, '数学': 86, '英语': 55}, '林俊节': {'语文': 99, '数学': 96, '英语': 66}}



# 从嵌套字典里获取数据
# 看一下周杰轮的语文信息
score = stu_score_dict["周杰轮"]["语文"]
print(f"周杰轮的语文分数是:{score}")

# 周杰轮的语文分数是:88

 5.字典的注意事项

·键值对的Key和Value可以是任意类型(Key不可为字典)

·字典内Key不允许重复,重复添加等同于覆盖原有数据

·字典不可用下标索引,而是通过Key检索Value

6.字典的常用操作

·新增元素

语法:字典[Key] = Value

结果:字典被修改,新增了元素

# 新增元素
my_dict = {"欣欣": 100, "嘉嘉": 99, "周周": 88}
my_dict["文文"] = 66
print(f"字典经过新增元素后,结果:{my_dict}")

# 字典经过新增元素后,结果:{'欣欣': 100, '嘉嘉': 99, '周周': 88, '文文': 66}

·更新元素

语法:字典[Key] = Value

结果:字典被修改,元素被更新

注意:字典Key不可以重复,所以对已存在的Key执行上述操作,即更新Value值

# 更新元素
my_dict = {"欣欣": 100, "嘉嘉": 99, "周周": 88}
my_dict["欣欣"] = 77
print(f"字典经过更新后结果:{my_dict}")

# 字典经过更新后结果:{'欣欣': 77, '嘉嘉': 99, '周周': 88}

·删除元素

语法:字典.pop(Key)

结果:获得指定的Key的Value,同时字典被修改,指定Key的数据被删除

# 删除元素
my_dict = {"欣欣": 100, "嘉嘉": 99, "周周": 88}
score = my_dict.pop("欣欣")
print(f"字典中被移除了一个元素结果是:{my_dict}欣欣的考试分数是:{score}")

# 字典中被移除了一个元素结果是:{'嘉嘉': 99, '周周': 88}欣欣的考试分数是:100

·清空元素

语法:clear()

# 清空元素,clear
my_dict = {"欣欣": 100, "嘉嘉": 99, "周周": 88}
my_dict.clear()
print(f"字典被清空了内容是:{my_dict}")

# 字典被清空了内容是:{}

·获取全部的Key

语法:字典.Keys()

结果:得到字典中全部的Key

# 获取全部的Key
my_dict = {"欣欣": 100, "嘉嘉": 99, "周周": 88}
keys = my_dict.keys()
print(f"字典中全部Keys是:{keys}")

#字典中全部Keys是:dict_keys(['欣欣', '嘉嘉', '周周'])

·遍历字典

# 遍历字典
# 方式1:通过获取到全部的Key来完成遍历
for key in keys:
    print(f"字典的Key是:{key}")
    print(f"字典的Value是:{my_dict[key]}")

# 字典的Key是:欣欣
# 字典的Value是:100
# 字典的Key是:嘉嘉
# 字典的Value是:99
# 字典的Key是:周周
# 字典的Value是:88

#方式2:直接对字典进行for循环,每一次循环都是直接得到Key
for key in my_dict:
    print(f"字典的Key是:{key}")
    print(f"字典的Value是:{my_dict[key]}")

# 字典的Key是:欣欣
# 字典的Value是:100
# 字典的Key是:嘉嘉
# 字典的Value是:99
# 字典的Key是:周周
# 字典的Value是:88

·统计字典中的元素数量

语法:len()函数

# 统计字典中的元素数量
num = len(my_dict)
print(f"统计字典中的元素数量:{num}")

#统计字典中的元素数量:3

总结:

7.字典的特点

·可以容纳多个数据

·可以容纳不同类型的数据

·每一份数据都是Key Value键值对

·可以通过Key获取到Value,Key不可以重复(重复会覆盖)

·不支持下标索引

·可以修改(增加或删除元素等)

·支持for循环,不支持while循环 

完结

标签:映射,欣欣,Value,dict,Key,my,字典
From: https://blog.csdn.net/weixin_47515798/article/details/139320591

相关文章

  • 字典课后练习题 多加练习呀!
    info_dict={"王":{"部门":"科技部","工资":3000,"级别":1},"周":{"部门":"市场部","工资":5000,......
  • Java 对象关系映射(ORM)框架:介绍Java的经典ORM框架,如Hibernate,MyBatis,及其用法
    什么是ORM对象关系映射(ObjectRelationalMapping,简称ORM)是一种程序设计技术,用于实现面向对象编程语言中的对象和关系数据库中的数据之间的映射。在其他words,它就是创建一个可在编程语言里使用的、能感知数据库模式结构的虚拟对象数据库。 ORM的主要作用如下: ......
  • 未验证:字符串解析为字典的九种方法/
    我是说直接把字典里的内容变成字符串然后解析这个字符串为字典然后才是代码中的计算,我是让你修改代码将输出字符串解析为字典的九种方法:方法一:使用正则表达式importreparsed_item_prices={}current_item=Noneforlineinoutput_string.split('\n'):if......
  • 这种嵌套字典类型的数据,我想把它读取到df里,如何操作?
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【WYM】问了一个Pandas处理的问题,提问截图如下:原始数据:temp=dict()temp[64001]={64002:1.0,64003:1.0,64004:1.0,}temp[64002]={64001:1.0,64003:1.0,64004:1.0,}期待的结果:64001{64002:1.0,6......
  • [Paper Reading] FlashOcc: Fast and Memory-Efficient Occupancy Prediction via Cha
    FlashOcc:FastandMemory-EfficientOccupancyPredictionviaChannel-to-HeightPluginlink时间:23.11机构:houmo.ai后摩智能TL;DR当时比较流行的OCC方案内存与计算复杂度较高,本文提出一种称为FlashOcc的方法,仅使用2D卷积将特征由二维空间lift到3D空间。MethodImageEn......
  • Mybatis的Xml映射文件
    XML映射文件1.首先xml文件要与mapper接口进行同包同名2.xml映射文件的命名空间namespace=“com.itheima.mapper.EmpMapper”3.xml文件中的sql语句的id要与mapper中的方法名保持一致如果是查询操作,那么要resultmap的类型与Emp保持一致那么我们就先根据这三点......
  • 用python字典统计CSV数据
    1.用python字典统计CSV数据的步骤和代码示例为了使用Python字典来统计CSV数据,我们可以使用内置的csv模块来读取CSV文件,并使用字典来存储统计信息。以下是一个详细的步骤和完整的代码示例:1.1步骤(1)导入csv模块。(2)打开CSV文件并读取数据。(3)初始化一个空字典来存储统计信息。......
  • Learning Model Predictive Control for Iterative Tasks. A Data-Driven Control Fra
    LearningModelPredictiveControlforIterativeTasks.AData-DrivenControlFramework一句话MPC:在每个采用点处,根据被控对象的状态和预测模型,预测系统在未来一段时间内的状态,依据某一性能指标(成本函数)来求解最优的一组控制序列,并将这组控制序列的第一个控制作用作为输出......
  • 用python字典统计CSV数据
    1.用python字典统计CSV数据的步骤和代码示例为了使用Python字典来统计CSV数据,我们可以使用内置的csv模块来读取CSV文件,并使用字典来存储统计信息。以下是一个详细的步骤和完整的代码示例:1.1步骤(1)导入csv模块。(2)打开CSV文件并读取数据。(3)初始化一个空字典来存储统计信息。(4)遍......
  • Python的嵌套字典
    基于字典的基本语法:字典名称={“键”:值}在这里键可以有:整形,浮点型,字符串型,元祖(键的值是不变的),值可以取任意数据类型看准键(Key)值(value)对在这里演示一个嵌套字典的案例:stu_score_dict={"王力宏":{"语文":88,"数学":77,"英语":46......