当前位置: 首页 > news >正文

python学习—字典(Dictionary)

系列文章目录

python学习—列表和元组
python学习—循环语句-控制流
python学习—合并TXT文本文件
python学习—统计嵌套文件夹内的文件数量并建立索引表格
python学习—查找指定目录下的指定类型文件
python学习—年会不能停,游戏抽签抽奖
python学习—合并多个Excel工作簿表格文件


文章目录

  • 系列文章目录
  • 功能说明
  • 1 字典(Dictionary),
      • (1) 访问 读取
      • (2) 添加 数据
      • (3) 删除 数据
      • (4) 修改 数据
      • (5) 字典不排序 无序
      • (6)字典函数(len 、str)
      • (7)字典方法(key、value、items、get、pop、update、setdefault、fromkeys)
  • 2 字典与列表嵌套
      • (1) 列表嵌套列表
      • (2) 字典嵌套字典
      • (3) 字典嵌套 列表
      • (4)列表嵌套 字典
  • 4 后记


功能说明

本文简单介绍python中的字典(Dictionary),
字典是python 另一种可变、无序 容器模型,且可存储任意类型对象。
特性:

  • 字典的每个键值 key:value 对用冒号 : 分割,
  • 每个键值对之间用逗号 , 分割 简单理解 姓名 成绩 是一组键值对
  • 键一般是唯一的,如果重复了,最后的一个键值对会替换前面的,值不需要唯一
  • 键必须不可变,所以可以用数字,字符串或元组充当,用列表就不行
  • 整个字典包括在花括号 {} 中 ,
  • 格式如下所示:
scores = {'小明':95,'小红':90,'小刚':90} 

python版本为 python3

1 字典(Dictionary),

(1) 访问 读取

提取 字典提取 靠的是 键key

print(scores['小明'])                   # 95    标准格式  字典名[字典的键]
print(scores['小红'])                   # 90    字典名[字典的键]print(scores['小宋'])                   # KeyError: '小宋'   访问没有的键,报错

(2) 添加 数据

增加标准格式 字典名[键] = 值

scores['小宋'] = 100
print(scores)                           # {'小明': 95, '小红': 90, '小刚': 90, '小宋': 100}

(3) 删除 数据

删除标准格式 del 字典名[键]

del scores['小刚']                      # 删除 小刚  的记录
print(scores)                           # {'小明': 95, '小红': 90, '小宋': 100}spam = {'color': 'red', 'age': 42}
spam.clear()                            # 清空字典所有条目
print(spam)                             # {}     空字典del spam                               # 删除字典

(4) 修改 数据

如果只需要修改键里面的值,直接对键 赋值

scores['小宋'] = 99 
print(scores)                           # {'小明': 95, '小红': 90, '小宋': 99}

(5) 字典不排序 无序

不像列表,字典中的项是不排序的。因为字典不排序,所以 不能像列表那样切片。

scores001 = {'小明': 95, '小红': 100, '小刚': 90}
scores002 = {'小红': 100, '小刚': 90, '小明': 95}
print(scores001 == scores002)             # True    说明  两个字典 完全一致 

(6)字典函数(len 、str)

print(len(scores001))              # 3  字典的长度 hhh = str(scores001)               # str() 函数将值转化为适于人阅读的形式,以可打印的字符串表示
print(hhh)                         # {'小明': 95, '小红': 100, '小刚': 90}
print(type(hhh))                   # <class 'str'>    字符串          
print(type(scores001))             # <class 'dict'>   字典

(7)字典方法(key、value、items、get、pop、update、setdefault、fromkeys)

  • key() 字典的键
for k in scores001.keys():  # 循环迭代  键print(k)
# 小明
# 小红
# 小刚
  • value() 字典的值
for k in scores001.values():  # 循环迭代  值print(k)
# 95
# 100
# 90
  • item() 字典的 键值对
for k in scores001.items():  # 循环迭代  键值对print(k)
# ('小明', 95)               # 元组
# ('小红', 100)
# ('小刚', 90)
  • ‘键’ in 字典。判断 键 是否在 字典中,返回布尔值
print('小明' in scores001)    # True
print('王五' in scores001)    # False
  • 字典.get(键,default) 返回指定键的值,如果值不在字典中返回default值
print(scores001.get('小刚', '没有这个键'))         # 90
print(scores001.get('张三', '没有这个键'))         # 没有这个键
  • 字典.pop(键,default) 。删除字典给定键 key 所对应的值,返回值为被删除键的值。key值必须给出。 否则,返回default值。
print(scores001.pop('小刚', '没有这个键'))        # 90     删除 小刚 这个键值对。这里返回的是 小刚的 值  90
print(scores001)                                 # {'小明': 95, '小红': 100}  
print(scores001.pop('小刚', '没有这个键'))        # 没有这个键     因为没有 小刚这个键了,所以 返回  default
  • 字典.popitem() 。删除字典最后一组键值对。
print(scores001.popitem())                       # ('小红', 100)    删除 最后一组键值对。这里返回的是  键值对
print(scores001)                                 # {'小明': 95}  
  • 字典1.update(字典2) 。把字典dict2 的键/值对 更新到dict1 里。如果有键 重复,则覆盖
scores001.update(scores002)                      # 用 scores002 更新 scores001
print(scores001)                                 # {'小明': 95, '小红': 100, '小刚': 90}
  • 字典.setdefault(key, default=None) 。 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
scores001.setdefault('张三', 60)
print(scores001)                               # {'小明': 95, '小红': 100, '小刚': 90, '张三': 60}
scores001.setdefault('张三', 80)               # 已经有了  键  张三, 故 不添加了
print(scores001)                               # {'小明': 95, '小红': 100, '小刚': 90, '张三': 60}
  • 字典.fromkeys(seq[, value]) 。创建一个新字典,以序列 seq 中元素做字典的键,
  • value 为字典所有键对应的初始值,value – 可选参数, 设置键序列(seq)的值,默认为 None
abc = [1, 2, 3]
scores003 = dict(zip(abc,[10,20,30]))
print(scores003)                             # {1: 10, 2: 20, 3: 30}
scores004 = dict(zip(abc,[40]))
print(scores004)                             # {1: 40}
  • 字典.copy() 返回一个字典的浅复制 浅拷贝
scores006 = scores003.copy()
print(scores006)                           #  {1: 10, 2: 20, 3: 30}
scores003.clear()                          # 清空 
print(scores003)                           # {}
print(scores006)                           # {1: 10, 2: 20, 3: 30}

2 字典与列表嵌套

字典经常与列表一起,嵌套使用,在调用的时候有一些特殊格式。

(1) 列表嵌套列表

students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']] 
//提取  小芳
print(students[1][3])                     #  小芳 。第一个元素中的第3个元素
//提取  小兰
print(students[1][1])                     #  小兰 。第1个元素中的第1个元素

(2) 字典嵌套字典

scores = {'第一组':{'小明':95,'小红':90,'小刚':100,'小美':85},'第二组':{'小强':99,'小兰':89,'小伟':93,'小芳':88}}
//小芳的成绩
print(scores['第二组']['小芳'])          #  88   。键 ‘第二组’的值(字典)中的键 ‘小芳’的  值
//小刚的成绩
print(scores['第一组']['小刚'])          #  100  。键 ‘第一组’的值(字典)中的键 ‘小刚’的  值

(3) 字典嵌套 列表

students = {'第一组':['小明','小红','小刚','小美'],'第二组':['小强','小兰','小伟','小芳']}
//提取  小美
print(students['第一组'][3])            # 小美  。键 '第一组'的值 (列表)中对应列表偏移量为3的元素

(4)列表嵌套 字典

scores = [{'小明':95,'小红':90,'小刚':100,'小美':85},{'小强':99,'小兰':89,'小伟':93,'小芳':88}]
//提取 小强的成绩
print(scores[1]['小强'])                #  99。索引  1 的元素(字典)中键为 ‘小强’的值value。

4 后记

字典是Python中非常灵活且常用的数据结构,适用于需要快速根据标识(键)查找对应信息(值)的场景。

相关文章:

python学习—字典(Dictionary)

系列文章目录 python学习—列表和元组 python学习—循环语句-控制流 python学习—合并TXT文本文件 python学习—统计嵌套文件夹内的文件数量并建立索引表格 python学习—查找指定目录下的指定类型文件 python学习—年会不能停&#xff0c;游戏抽签抽奖 python学习—合并多个Ex…...

鸿蒙开发:【组件启动规则(FA模型)】

组件启动规则&#xff08;FA模型&#xff09; 启动组件是指一切启动或连接应用组件的行为&#xff1a; 启动PageAbility、ServiceAbility&#xff0c;如使用startAbility()等相关接口。连接ServiceAbility、DataAbility&#xff0c;如使用connectAbility()、acquireDataAbili…...

网络编程5----初识http

1.1 请求和响应的格式 http协议和前边学过的传输层、网络层协议不同&#xff0c;它是“一问一答”形式的&#xff0c;所以要分为请求和响应两部分看待&#xff0c;同时&#xff0c;请求和响应的格式是不同的&#xff0c;我们来具体介绍一下。 1.1.1 请求 在介绍请求之前&…...

“用友审批+民生付款”,YonSuite让企业发薪更准时

随着现代企业经营模式的不断创新和市场竞争的加剧&#xff0c;企业薪资管理和发放的效率、准确性和及时性已成为企业管理的重要一环。然而&#xff0c;在实际操作中&#xff0c;许多企业面临着薪资管理复杂、发放流程繁琐、数据不准确等难点和痛点。为了解决这些问题&#xff0…...

EtherCAT扫盲,都是知识点

1. 什么是EtherCAT EtherCAT&#xff0c;全称Ethernet for Control Automation Technology&#xff0c;字面意思就是用于控制自动化技术的以太网。它是一种基于以太网的实时工业通信协议&#xff0c;简单说&#xff0c;就是让机器们通过网线互相聊天的高级方式。 EtherCAT 是最…...

开发中遇到的错误 - @SpringBootTest 注解爆红

我在使用 SpringBootTest 注解的时候爆红了&#xff0c;ait 回车也导不了包&#xff0c;后面发现是因为没有加依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId>…...

数据仓库的实际应用示例-广告投放平台为例

数据仓库的数据分层通常包括以下几层&#xff1a; ODS层&#xff1a;存放原始数据&#xff0c;如日志数据和结构化数据。DWD层&#xff1a;进行数据清洗、脱敏、维度退化和格式转换。DWS层&#xff1a;用于宽表聚合值和主题加工。ADS层&#xff1a;面向业务定制的应用数据层。…...

Beyond VL了解学习

Beyond VL&#xff1a;多模态处理的前沿 在今天的数据驱动时代&#xff0c;我们经常需要处理和分析多种类型的数据&#xff0c;例如文本、图像、视频和音频。Beyond VL 是一个先进的多模态模型&#xff0c;专为处理这些多种数据而设计。它能够同时处理多种模态的数据&#xff…...

AI音乐革命:创意产业的新篇章

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;在各个领域的应用越来越广泛&#xff0c;特别是在音乐产业中&#xff0c;AI音乐大模型的涌现&#xff0c;正在重新定义音乐创作的边界。最近一个月&#xff0c;随着多个音乐大模型的轮番上线&#xff0c;素人…...

python从入门到精通1:注释

在Python编程中&#xff0c;注释是一种非常重要的工具&#xff0c;它不仅可以帮助我们记录代码的目的、工作方式以及任何需要注意的地方&#xff0c;还可以使代码更具可读性。Python提供了两种主要的注释方式&#xff1a;单行注释和多行注释。下面我们将深入探讨这两种注释方式…...

CountDownLatch(应对并发问题的工具类)

CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作以后&#xff0c;再执行当前线程&#xff1b;比如我们在主线程需要开启2个其他线程&#xff0c;当其他的线程执行完毕以后我们再去执行主线程&#xff0c;针对这 个需求我们就可以使用CountDownLatch来进…...

HarmonyOS开发知识 :扩展修饰器,实现节流、防抖、权限申请

引言 防重复点击&#xff0c;利用装饰器面向切面&#xff08;AOP&#xff09;的特性结合闭包&#xff0c;实现节流、防抖和封装权限申请。 节流 节流是忽略操作&#xff0c;在触发事件时&#xff0c;立即执行目标操作&#xff0c;如果在指定的时间区间内再次触发了事件&…...

自然语言NLP的基础处理

NLP基本处理从句子的情感分析、实体与实体直接的关系&#xff0c;句子结构来分析 情感分析 1.句子的情感分析找出句子表达的是正面、负面还是中性的情感。 情感分析的影响因素&#xff1a; 词语顺序&#xff1a;词语的顺序可以影响句子的整体情感。例如&#xff0c;“我喜欢…...

带颜色的3D点云数据发布到ros1中(通过rviz显示)python、C++

ros中发布点云数据xyz以及带颜色的点云数据xyzrgb ros中发布点云数据xyz可以直接用python来做或者C(看个人偏好) ros中发布带颜色的点云数据xyzrgb环境1.新建ROS工作空间2.创建功能包 ros中发布点云数据xyz 可以直接用python来做或者C(看个人偏好) 在这里我们带有颜色的点云数…...

python学习—列表和元组

系列文章目录 python学习—合并TXT文本文件 python学习—统计嵌套文件夹内的文件数量并建立索引表格 python学习—查找指定目录下的指定类型文件 python学习—年会不能停&#xff0c;游戏抽签抽奖 python学习—循环语句-控制流 python学习—合并多个Excel工作簿表格文件 文章目…...

c++题目_水仙花数

水仙花数-普及-题目-ACGO题库 题目描述 求100-n中的水仙花数。一个数x&#xff0c;x的百位、十位、个位&#xff0c;分别用a、b、c来表示&#xff1b; 当a * a * a b * b * b c * c * c x时&#xff0c;x就被称为水仙花数。(n< 999) 输入格式 一行一个整数n 输出格式…...

使用 Iceberg、Tabular 和 MinIO 构建现代数据架构

现代数据环境需要一种新型的基础架构&#xff0c;即无缝集成结构化和非结构化数据、轻松扩展并支持高效的 AI/ML 工作负载的基础架构。这就是现代数据湖的用武之地&#xff0c;它为您的所有数据需求提供了一个中心枢纽。然而&#xff0c;构建和管理有效的数据湖可能很复杂。 这…...

jnp.linalg.norm

jnp.linalg.norm 是 JAX 中用于计算向量或矩阵的范数的函数。JAX 是一个用于高性能机器学习研究的 Python 库&#xff0c;它提供了与 NumPy 类似的 API&#xff0c;但支持自动微分和加速计算。jnp 是 JAX 的 NumPy 接口。 jnp.linalg.norm 的基本语法 jnp.linalg.norm(x, ord…...

20240621在飞凌的OK3588-C开发板的Buildroot系统中集成i2ctool工具

20240621在飞凌的OK3588-C开发板中打开i2ctool工具 2024/6/21 17:44 默认继承的i2c工具&#xff1a; rootrk3588-buildroot:/# rootrk3588-buildroot:/# i2c i2c-stub-from-dump i2cdump i2cset i2cdetect i2cget i2ctransfer rootrk3588-…...

ARM32开发--存储器介绍

知不足而奋进 望远山而前行 目录 文章目录 前言 存储器分类 RAM ROM EEPROM Flash 总结 前言 在现代计算机系统中&#xff0c;存储器扮演着至关重要的角色&#xff0c;不仅影响着数据的存取速度和稳定性&#xff0c;还直接关系到计算机系统的性能和应用场景的选择。存…...

Web服务器

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 当在浏览器输入URL后&#xff0c;浏览器会先请求DNS服务器&#xff0c;获得请求站点的 IP 地址&#xff08;即根据URL地址“www.mingrisoft.com”获取…...

大语言模型-Transformer

目录 1.概述 2.作用 3.诞生背景 4.历史版本 5.优缺点 5.1.优点 5.2.缺点 6.如何使用 7.应用场景 7.1.十大应用场景 7.2.聊天机器人 8.Python示例 9.总结 1.概述 大语言模型-Transformer是一种基于自注意力机制&#xff08;self-attention&#xff09;的深度学习…...

POI:接收上传上来的excel,解析并导入到数据库

目录 1、控制层 2、业务层&#xff08;主要逻辑&#xff09; 1、控制层 因为前端设置了只能上传1个文件&#xff0c;这里直接取一个。 RequestMapping(value "/shebeiDaoru.ctrl", method RequestMethod.POST, produces "application/json;charsetUTF-8&q…...

网页的CSS和JavaScript文件没有自动更新, 解决办法

项目场景&#xff1a; 无人值守的场馆预定以及管理 问题描述 更新了CSS和JavaScript&#xff0c;访问始终样式不对 原因分析&#xff1a; 浏览器缓存了你的CSS和JavaScript文件 浏览器缓存了你的CSS和JavaScript文件。当文件的修改时间戳&#xff08;last-modified&#xff…...

Go语言 获取服务器资源磁盘Disk情况

1、获取整个磁盘的总量、已使用量、使用率 package mainimport ("fmt""github.com/shirou/gopsutil/disk""log" )func main() {// 获取所有挂载点的磁盘使用率信息partitions, err : disk.Partitions(false)if err ! nil {log.Fatalf("Err…...

使用上海云盾 CDN 和 CloudFlare 后 Nginx、 WordPress、 Typecho 获取访客真实 IP 方法

最近因为被 DDoS/CC 攻击的厉害,明月就临时的迁移了服务器,原来的服务器就空置下来了,让明月有时间对服务器进行了重置重新部署安装生产环境。因为站点同时使用了上海云盾和 CloudFlare(具体思路可以参考【国内网站使用国外 CloudFlare CDN 的思路分享】一文)两个 CDN 服务…...

深入探究RTOS的任务调度

阅读引言&#xff1a; 此文将会从一个工程文件&#xff0c; 一步一步的分析RTOS的任务调度实现&#xff0c; 这里选用FreeRTOS分析&#xff0c; 别的也差不多的&#xff0c; 可能在细节上有少许不一样。 目录 1&#xff0c; 常见嵌入式实时操作系统 2&#xff0c; 任务调度的…...

【shell脚本速成】函数

文章目录 一、函数1.1、函数介绍1.2、函数定义1.3、函数调用 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘分使然&#xff01;&#x1f60a; &#x1f338;愿您在此停留的每一刻&#xf…...

拒绝零散碎片, 一文理清MySQL的各种锁

系列文章目录 学习MySQL先有全局观&#xff0c;细说其发展历程及特点 Mysql常用操作&#xff0c;谈谈排序与分页 拒绝零散碎片&#xff0c; 一文理清MySQL的各种锁&#xff08;收藏向&#xff09; 系列文章目录一、MySQL的锁指什么二、排他与共享三、全局锁&#xff08;Global…...

P5711 【深基3.例3】闰年判断

1. 题目链接 https://www.luogu.com.cn/problem/P5711 P5711 【深基3.例3】闰年判断 2. 题目描述 题目描述&#xff1a;判断一个数是否是闰年 输入&#xff1a;输入一个整数n 输出&#xff1a;输出1或0&#xff0c;如果是闰年&#xff0c;输出1&#xff0c;否则输出0 3. 我的…...

企业网站建设套餐/搜索引擎关键词优化

目录 0. 相关文章链接 1. 如何确定 FE 进程启动成功 2. 如何确定 BE 进程启动成功 3. 搭建系统后&#xff0c;如何确定 FE、BE 连通性正常 4. Doris 各节点认证机制 5. BE 进程文件句柄数 0. 相关文章链接 数据库 文章汇总 1. 如何确定 FE 进程启动成功 FE 进程启动后…...

asp.net网站加速/小程序拉新推广平台

/**这个例子要实现向已有的数据库中插入一条数据。*/importjava.sql.*;importorg.omg.CORBA.portable.Streamable;importcom.mysql.jdbc.Statement;publicclassTestDML{publicstaticvo.../** 这个例子要实现向已有的数据库中插入一条数据。*/import java.sql.*;import org.omg.…...

现在做网站用什么软件/企业网站建设的重要性

英文原文&#xff1a;Inside NGINX: How We Designed for Performance & Scale 为了更好地理解设计&#xff0c;你需要了解NGINX是如何工作的。NGINX之所以能在性能上如此优越&#xff0c;是由于其背后的设计。许多web服务器和应用服务器使用简单的线程的&#xff08;thre…...

潍坊网站建设套餐/品牌全案营销策划

例题27 王子和公主(Prince and Princess, UVa 10635) 有两个长度分别为p+1和q+1的序列, 每个序列中的各个元素互不 相同, 且都是1~n2之间的整数。 两个序列的第一个元素均为1。 求出A和 B的最长公共子序列长度。 【输入格式】 输入的第一行为数据组数T(T≤10) 。 每组…...

网站建设及推广好学习吗/百度竞价排名正确解释

众所周知&#xff0c;Jquery是对JavaScript的一种高效的封装&#xff0c;所以Jquery要操作的数组即是JavaScript中的数组&#xff0c;在 JavaScript中我们使用for以及for-in进行数组的操作&#xff0c;而在Jquery中则使用$.map()、$.each()来操作数组&#xff1a; 首先是普通的…...

wordpress 特色照片/中国时事新闻网

矩阵的乘方运算与开方运算 在matlab7.0中&#xff0c;可以使用A^p来计算A的p次方&#xff0c;使用sqrtm()来对矩阵开方运算&#xff0c;如果有X*XA,则有sqrtm(A)X; 矩阵的开方运算与乘方运算互为逆运算。 矩阵的指数运算用expm函数来实现&#xff0c;expm(X)V*diag(exp(diag(…...