python中的字典详解

news2025/1/17 0:59:54

目录

一.思考

二.字典定义

 注意

三.字典数据的获取

 注意

 字典的嵌套

 四.字典常用操作

1.新增、更新元素

2.删除元素

3.清空字典

4.获取全部Key

5.利用Key遍历字典

 五.字典总结

六.字典实例


 

一.思考

为什么需要字典?

 生活中的字典我们可以根据【字】来找到对应的【含义】

python中的字典也是同理,不过叫法不同,在python中就是[Key]去找对应的[Value]

 比如说,我这里有一份名单,记录的是姓名和成绩:
 

姓名        

成绩
张三        76
李四87
王五90

现在需要将其通过Python录入至程序中,并可以通过学生姓名检索学生的成绩。

这个时候,用字典最适合

{
    "张三":76,
    "李四":87,
    "王五":90
}

这样就可以通过Key (姓名),取到对应的Value(成绩)

二.字典定义

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

#定义字典字面量
{key:value,key:value,key:value,.....,key:value}
my_dict = {key:value,key:value,key:value,.....,key:value}
#定义空字典两种方法
my_dict = {}
my_dict = dict()
#定义字典字面量
{"张三":76,"李四":87,"王五":90}
my_dict = {"张三":76,"李四":87,"王五":90}
#定义空字典两种方法
my_dict2 = {}
my_dict3 = dict()
print(f"字典1的内容是{my_dict},类型为{type(my_dict)}")
print(f"字典1的内容是{my_dict2},类型为{type(my_dict2)}")
print(f"字典1的内容是{my_dict3},类型为{type(my_dict3)}")

运行结果是

 注意

如果字典中的关键字重复,那么只会输出最后一次结果,如图

三.字典数据的获取

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

 注意

只能由Key找到对应的Value

 字典的嵌套

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

需求如下:记录学生各科的考试信息
 

姓名语文数学英语
张三875687
李四678698
王五776860

代码如下

my_dict = {
    "张三":{
        "语文":87,
        "数学":56,
        "英语":87
    },
    "李四":{
        "语文": 67,
        "数学": 86,
        "英语": 98
    },
    "王五":{
        "语文": 77,
        "数学": 68,
        "英语": 60
    }

}
print(f'王五的信息是:{my_dict["王五"]}')
print(f"所有信息是:{my_dict}")
print(my_dict["张三"]["语文"])
print(my_dict["张三"]["数学"])
print(my_dict["张三"]["英语"])
Lisi_yingyu = my_dict["李四"]["英语"]
print(f"李四的英语是:{Lisi_yingyu}")

结果是

 四.字典常用操作

  • 新增元素
  • 更新元素
  • 删除元素
  • 清空字典
  • 获取全部Key
  • 利用Key遍历字典

1.新增、更新元素

语法:字典[Key]= Value,结果:字典被修改,元素被更新

my_dict = {"张三":76,
           "李四":87,
           "王五":90
}
my_dict["赵四"]=75
print(f"添加赵四之后为:{my_dict}")
my_dict["张三"]=98
print(f"更新张三之后为:{my_dict}")

结果是

2.删除元素

语法:字典.pop(Key),结果:获得指定Key的value,同时字典被修改,指定Key的数据被删除

 

3.清空字典

语法:字典.clear(),结果:字典被修改,元素被清空

4.获取全部Key

语法:字典.keys()
结果:得到字典中的全部key 

5.利用Key遍历字典

my_dict = {"张三":76,
           "李四":87,
           "王五":90
}
print(f"字典中的所有key为:{my_dict.keys()}")
for name in my_dict.keys():
    print(f"字典的key是:{name},其value是:{my_dict[name]}")

 结果是

 

 五.字典总结

  1. 可以容纳多个数据
  2. 可以容纳不同类型的数据
  3. 每一份数据是KeyValue键值对
  4. 可以通过Key获取到value,Key不可重复(重复会覆盖)
  5. 不支持下标索引
  6. 可以修改(增加或删除更新元素等)
  7. 支持for循环,不支持while循环

六.字典实例

有如下员工信息,请使用字典完成数据的记录。
并通过for循环,对所有级别为1级的员工,级别上升1级,薪水增加1000元

姓名部门工资级别
张三科技部30001
李四市场部50002
王五市场部70003
赵四科技部40001
赵六市场部60002

代码

info_dict = {
    "张三":{
        "部门":"科技部",
        "工资":3000,
        "级别":1
    },
    "李四":{
        "部门":"市场部",
        "工资":5000,
        "级别":2
    },
    "王五": {
        "部门": "市场部",
        "工资": 7000,
        "级别": 3
    },
    "赵四": {
        "部门": "科技部",
        "工资": 4000,
        "级别": 1
    },
    "赵六": {
        "部门": "市场部",
        "工资": 6000,
        "级别": 2
    }
}
print(f"改变之前的信息为:{info_dict}")
for name in info_dict.keys():
    if info_dict[name]["级别"]==1:
        info_dict[name]["级别"]+=1
        info_dict[name]["工资"]+=1000
print(f"改变之后的信息为:{info_dict}")

结果为

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/93726.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT-Linux安装

1、在虚拟机Ubuntu的环境安装好之后,详细看: QT Linux环境搭建——VM虚拟机和Ubuntu的安装_sgmcy的博客-CSDN博客 下面就可以直接安装linux环境下的QT了 2、唯一要注意的一点是,之前安装虚拟机的时候,磁盘空间一定要大一点&…

第十四届蓝桥杯集训——JavaC组第十四篇——嵌套循环

第十四届蓝桥杯集训——JavaC组第十四篇——循环嵌套 目录 第十四届蓝桥杯集训——JavaC组第十四篇——循环嵌套 循环嵌套是逻辑程序中的方法 对应嵌套的循环复杂度 嵌套循环示例: 名词解析: 笛卡尔积 循序命名 循环嵌套是逻辑程序中的方法 循环嵌…

“无人区”行驶8年,李诞的脱口秀路在何方?

刚从《脱口秀大会5》的舞台上下来的李诞,给自己找了份“新工作”——脱口秀直播带货。 12月10日晚,李诞入淘。讲段子、玩梗手到擒来,李诞将自己风趣幽默的脱口秀风格沿用到了这场“来个彩诞”直播首秀中,给交个朋友贡献了超3200万…

5.单点登录(Vue2.x)

概况 百度百科 单点登录(Single Sign On),简称为 SSO,是比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 关键词 token、session、cooki…

Java基础之《netty(13)—任务队列taskQueue》

一、任务队列 1、用户程序自定义的普通任务 2、用户自定义定时任务 3、非当前Reactor线程调用Channel的各种方法 例如在推送系统的业务线程里面,根据用户的标识,找到对应的Channel引用,然后调用Write类方法向该用户推送消息,就…

基于java+springmvc+mybatis+vue+mysql的养老院管理系统

项目介绍 管理员后台页面: 功能:主页、个人中心、护工管理、家属管理、楼房资料管理、房间资料管理、床位管理、老人入住管理、老人档案管理、身体状态管理、用药情况管理、转房登记管理、外出登记管理、药品信息管理、药品入库管理、药品出库管理、物品…

【C语言】整型的存储方式(大小端,原码,反码,补码)

目录 一、基本类型 二、原码,反码,补码 2.1 原,反,补的计算方式 2.1.1 正数的原,反,补 2.1.2 负数的原,反,补 2.2 为什么要用补码存放 2.3 大小端是什么? 2.3.1 …

明道云联合契约锁共建人事场景电子签约解决方案

背景介绍 在每个组织的人事管理工作中,从招聘、入职、在职、调岗到离职,整个过程中存在大量的合同、证明、函件、通知等文件需要签字盖章。HR每天都要在“核对文件、敲章、通知员工签合同、催进度、给外地员工寄合同、关注合同到期时间等”繁琐的签署工…

使用vite和Element Plus,实现部署后不修改代码/打包,新增主题/皮肤包

Web前端界面切换主题/皮肤,是一个常见的需求。如果希望在打包部署后实现皮肤的修改甚至增加皮肤,不需要修改源码或者重新打包,类似于我们常见的皮肤包扩展,又该如何实现呢? 我使用类似上一期多语言包功能中介绍的方法来…

基于Xlinx的时序分析与约束(3)----基础概念(下)

1、4种基本的时序路径 下图是一张典型的FPGA与上游器件、下游器件通信的示意图: 其可以划分为4条基本的数据路径,这4条路径也是需要进行时序约束的最基本路径。 (1)寄存器到寄存器 路径2,FPGA内部的寄存器到另一个寄存…

[附源码]Node.js计算机毕业设计高校医疗健康服务系统的设计与实现Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

【C++初阶】类和对象(下)再谈构造函数、static成员、C++11的成员初始化新玩法、友元类、内部类

文章目录再谈构造函数static成员C11的成员初始化新玩法友元类内部类再谈构造函数 1.构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。 虽然上述构造函数调用之后,对象中已经有了一个初始值&am…

客户管理系统如何提升体验

数字化时代,客户与企业交互的触点爆炸式增长,客户体验正从单一触点走向端到端旅程。众多的产品、海量的数据,导致客户对体验的要求越来越多......CRM客户管理系统是企业提升客户体验的有效工具,它不仅可以帮助您进一步了解客户&am…

App自动化之dom结构和元素定位方式(包含滑动列表定位)

先来看几个名词和解释: dom: Document Object Model 文档对象模型dom应用: 最早应用于html和js的交互。界面的结构化描述, 常见的格式为html、xml。核心元素为节点和属性xpath: xml路径语言,用于xml 中的节点定位,XPath 可在 xml…

javaSE - 三个常用的接口(Comparable,Comparator,Cloneable)

1、Comparable 英 [ˈkɒmpərəbl] 美 [ˈkɑːmpərəbl] 可比较的;可比的;可比性;可比;可比较   2、Comparator 美 [kəmˈpɜrətər] n. 比较器,比色器,比较电路,比长仪,场强计 3、 Cloneable 可复制的 一、Comparable …

MySQL性能优化浅析

1. 硬件 1.1 CPU IO密集型,提升CPU核心数 计算密集型,提升CPU频率 1.2 磁盘 机械硬盘在随机访问时,由于受磁针移动速度的限制,性能会大幅降低。使用固态硬盘可以大幅提升随机访问的能力。按需选择。 1.3 其他 带宽、内存频…

Superset 安装配置

文章目录Superset 安装配置一、Superset 概述1. Superset简介2. 功能概述3. 支持的数据库二、Superset 环境部署步骤三、创建虚拟机,安装CentOS1.下载CentOS2.创建虚拟机3.编辑虚拟机设置4.安装centos7.9mini版本5.启动centos,并进行登录四、CentOS配置1…

小米(Android)刷NetHunter安装指南

一、安装NetHunter 前提:确保手机已经root,已装上magisk。如果没有root,可用尝试magisk root 后执行此文 1、下载Nethunter:Get Kali | Kali Linux 然后push 到sdcard 里, 2、打开magisk,选择刚刚下好的…

Windows下安装libtorch与Clion配置

Windows 安装和使用libtorch 1.下载libtorch libtorch的下载链接,如下图所示,libtorch有release和debug版本可以选择。为了方便调试,下debug版。电脑上没CUDA,下次有需要再更新吧。 2.libtorch使用 在Visual Studio的使用可以参…

云原生周刊 | 让 ChatGPT 以电子邮件的方式来解释 KubeSphere

过去的一周是 ChatGPT 的狂欢,我猜每一位云原生玩家都很好奇他是如何看待 Kubernetes 的。咱们不防换个方式来提问,让它使用电子邮件的方式来向别人推荐 KubeSphere 和 OpenFunction。 开源项目推荐 Tailscale Ingress Controller 这是针对 Tailscale …