首页 > 其他分享 >数据容器之字典

数据容器之字典

时间:2024-04-02 17:02:49浏览次数:16  
标签:容器 zhang li stu score Key 数据 字典

数据容器-字典

  • 字典的定义,同样使用{ },不过存储的元素是一个个的键值对,如下:

    • 使用{ }存储元素,一个元素是一个键值对

    • 每一个键值对包含Key和Value(用冒号分隔)

    • 键值对之间使用逗号分隔

    • Key和Value可以是任意类型的数据(key不可为字典)

    • Key不可重复,重复会对原有数据覆盖

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

# 定义字典字面量:{key:value,key:value,......,key:value}
# 定义字典变量:
# my_dict = {key: value, key: value,......, key: value}
# 定义空字典
my_dict = {}  # 空字典定义方式1
n_dict = dict()  # 空字典定义方式2

# 记录学生成绩
stu_score = {"zhang": 99, "wang": 98, "li": 97}
# 字典同集合一样,不可以使用下标索引,但是字典可以通过Key值来取得对应的Value
print(stu_score["zhang"])
# 嵌套
# 字典的Key和Value可以是任意数据类型(Key不可为字典),所以字典是可以嵌套的

# 需求如下:记录学生各科的考试信息,字典可以里面嵌套字典,key值不能为字典
stu_score = {"zhang": {"语文": 90, "数学": 88, "英语": 95}, "wang": {"语文": 80, "数学": 89, "英语": 70},
             "li": {"语文": 70, "数学": 91, "英语": 65}}

# 增加可读性
stu_score = {
    "zhang": {"语文": 90, "数学": 88, "英语": 95},
    "wang": {"语文": 80, "数学": 89, "英语": 70},
    "li": {"语文": 70, "数学": 91, "英语": 65}
}

# 嵌套字典的读取
print(stu_score["zhang"])            # {'语文': 90, '数学': 88, '英语': 95}
print(stu_score["wang"]["数学"])      # 89

相关操作

  1. 新增元素
# 	语法:字典[Key] = Value,结果:字典被修改,新增了元素
stu_score = {"zhang": 99, "wang": 98, "li": 97}
stu_score["yang"] = 89
print(stu_score)  # {'zhang': 99, 'wang': 98, 'li': 97, 'yang': 89}
  1. 更新元素

    # 	语法:字典[Key] = Value,结果:字典被修改,元素被更新
    # 	注意:字典Key不可以重复,所以对已存在的Key执行上述操作,就是更新Value值
    stu_score = {
        "zhang": 99,
        "wang": 98,
        "li": 97
    }
    stu_score["li"] = 90  # 更新li对应的value值
    print(stu_score)
    --------------------------------------------------------
    # 我们可以利用更新语句创建新的字典
    # 假设我们有一个列表:
    list1 = ['z', 'h', 'k']
    # 定义一个空字典
    dict1 = {}
    for i in range(len(list1)):    
        dict1[i] = list1[i]
    print(dict1)      # {0: 'z', 1: 'h', 2: 'k'}
    
    
    
  2. 删除元素

# 	语法:字典.pop(Key),结果:获得指定Key的Value,同时字典被修改,指定Key的数据被删除
stu_score = {
    "zhang": 99,
    "wang": 98,
    "li": 97
}
value = stu_score.pop("li")  # 获得指定Key的Value
print(value)    # 97
print(stu_score)  # 字典被修改,{'zhang': 99, 'wang': 98}
  1. 清空字典

    # 	语法:字典.clear(),结果:字典被修改,元素被清空
    stu_score = {
        "zhang": 99,
        "wang": 98,
        "li": 97
    }
    stu_score.clear()  # 字典被修改,元素被清空,结果:{}
    print(stu_score)
    
  2. 获取字典中所有的key

    # 	语法:字典.keys(),结果:得到字典中的全部Key
    stu_score = {
        "zhang": 99,
        "wang": 98,
        "li": 97
    }
    keys = stu_score.keys()
    print(keys)  # 结果dict_keys(['zhang', 'wang', 'li'])
    
  3. 遍历字典

    # 	语法1:for key in 字典.keys():
    #   语法2:for key in 字典:        # 临时变量key名字随意取,与语法一相比更加的简洁,结果一样
    stu_score = {
        "zhang": 99,
        "wang": 98,
        "li": 97
    }
    keys = stu_score.keys()
    for i in keys:  # 只能for循环,字典不支持下标索引
        print(f"姓名:{i},成绩:{stu_score[i]}")
    
  4. 计算字典中键值对的数量

    # 	语法:len(字典)
    # 	结果:得到一个整数,表示字典内元素(键值对)的数量
    stu_score = {
        "zhang": 99,
        "wang": 98,
        "li": 97
    }
    print(len(stu_score))  # 得到字典内元素(键值对)的数量
    

标签:容器,zhang,li,stu,score,Key,数据,字典
From: https://blog.csdn.net/m0_58561375/article/details/137276346

相关文章

  • python数据容器之列表
    python数据容器-列表1、列表列表的定义语法:[元素1,元素2,元素3,…]列表内的每一个数据,称之为元素以[]作为标识列表内每一个元素之间用,逗号隔开注意:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套列表的特点:可以容纳多个元素,上限为2**6......
  • C#对接部标JT808协议实现北斗定位设备数据接收服务端
    一、前言介绍开发一套能够支撑几万台北斗定位设备数据接收的服务端,用于接收北斗定位器定位数据的平台。项目基于windows平台,C#语言开发框架NetFramework4.8,TCP主要基于SuperSocket用来构建一个服务器端Socket程序,JT808.ProtocolJT/T808协议快速开发包,开发工具采用了微软的Vis......
  • 数据库设计规范(三大范式)
    1、第一范式*(确保每列保持原子性)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库满足第一范式。第一范式的合理遵循需要根据系统给的实际需求来确定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成为一......
  • 同时新增两条数据到sql数据库内
     记录一个低级错误。/***菜单新增目录、菜单、按钮选项*@paramxzMenu实体类对象*@return成功*/@OverridepublicAjaxResultinsertMenu(XzMenuxzMenu){xzMenu.setCreateTime(newDate());switch(xzMen......
  • C#将dataguidview与excel数据互相读写
    库需求需要NPOI库(处理Excel表格库)可在vs工具菜单栏中的NuGet包管理器中搜索NPOI下载·获得效果简单预览读点击查看代码privatevoidbtnRead_Click_1(objectsender,EventArgse){#region打开对话框,自定义选择要读取excel表格路径......
  • redis数据类型
    以下是Redis的主要数据类型及其使用场景:字符串(string)使用场景:存储用户信息、缓存热点数据等。特性:字符串是Redis最基本的数据类型,支持修改操作,可以用于实现计数器、分布式锁等功能。哈希(Hash)使用场景:存储用户信息、配置信息等。特性:哈希是键值对的集合,提供了存储字......
  • 阻止屏幕截取:反截屏控制及其在数据安全中的作用
    在企业信息化的发展过程中,数据安全是一项至关重要的任务。在防止公司机密信息外泄的诸多防线中,反截屏控制技术发挥了重要作用。它能有效阻止员工或外部人员通过屏幕截取来获取公司敏感信息或涉密资料。华企盾DSC数据防泄密系统为用户的数据安全提供了强有力的保障,其中包括了一个......
  • 2024 开源数据工程生态系统全景图
    作者|ALIREZASADEGHI翻译|DebraChen简介虽然生成式人工智能和ChatGPT带来的沸沸扬扬的炒作令科技界为之一振,但在数据工程领域,2023年仍然是一个令人振奋和充满活力的一年,数据工程生态系统变得更加多样化和复杂化,系统中的所有层面都在不断创新和演进。随着各种开源工具、......
  • MySQL数据库报错:Can‘t read dir of ‘/etc/mysql/conf.d/‘ (Errcode: 13 - Permissi
    在进行MySQL安装或初次配置的过程中,偶尔会遇到一些让人困惑的错误信息,这些错误可能会阻碍安装过程的顺利进行。本文旨在详细探讨MySQL安装过程中可能遇到的另一个具体错误,包括该错误的表现、原因以及解决步骤,以帮助用户有效地克服安装障碍。错误描述在MySQL的安装或启动过......
  • 列表+字典内置方法
    字符串查找​ .find('字符',起始查找位,结束查找位)默认从左往右找,默认值找一次,从右向左找可以用rfind,找到返回索引位置,找不到输出-1.index('字符',起始查找位,结束查找位)默认从左往右找,默认值找一次,从右向左找可以用rindex,找到返回索引位置,找不到则报错.count('字符')默认......