5.3章节python中字典:字典创建、元素访问、相关操作
1.字典的创建和删除
2.字典的访问和遍历
3.字典的相关操作
4.字典的生成式
一、字典的创建和删除
字典(dictionary)是一种用于存储键值对(key-value pairs)的数据结构。每个键(key)都映射到一个值(value),并且键必须是唯一的。字典是一种非常灵活和强大的数据结构,广泛用于处理复杂的数据关系。
1.字典创建
可以使用花括号 {} 或者 dict() 函数来创建一个字典。
# 1.使用花括号创建字典
a = {'name': 'Alice', 'age': 30, 'city': 'New York'}
print(a)# 2.zi函数
l1 = [2,6,9,8,55]
l2 = ['a','e','r','k']
zipobj = zip(l1,l2)
# print(zipobj) # 输出为<zip object at 0x0000013BBF180680>
z2 = dict(zipobj)
print(z2)# 3.使用 dict() 函数创建字典
b = dict(name='Bob', age=25, city='Los Angeles')
print(b)t = (5,9,6,8,7)
print({t:10})t1 = [5,9,6,8,7]
# print({t1:10}) # 报错# 4字典序列操作
print('max:',max(a))
print('min:',min(a))
print('len:',len(a))# 5.删除操作
del a
print(a)# 报错
二、字典的访问和遍历
通过键来访问字典中的值
a = {'name': 'Alice', 'age': 30, 'city': 'New York'}
# 访问字典中元素# 1.a[key]
print(a['city'])# 2 a.get(key)
print(a.get('city'))# 3.两者区别 二者之间是有区别的.如果key不存在. d[key]报错d .get(key)可以指定默认值
# print(d['py'])# 报错
print(a.get('py'))# None
print(a.get('py' ,'不存在'))# 字典的遍历
for i in a.items():print(i)# key=value组成的一个元素# 使用for循环遍历时,分别获取key,value
for key,value in a.items():print(key,'------->',value)
添加或修改键值对:可以通过给字典赋一个新的键值对来添加或修改一个键的值。
a['email'] = 'alice@example.com' # 添加一个新的键值对
a['age'] = 31 # 修改已存在的键的值
三、字典的相关操作
a = {'name': 'Alice', 'age': 30, 'city': 'New York',1001:'李梅'}
print(a)# 添加和修改
a['200'] = 1002 # 赋值
print(a)# 获取字典中所有的key
key_s = a.keys()
print(key_s)# dict_keys(['name', 'age', 'city', 1001, '200'])
print(list(key_s))
print(tuple(key_s))# 获取字典中所有values
value_s = a.values()
print(value_s)# dict_values(['Alice', 30, 'New York', '李梅', 1002])
print(list(value_s))
print(tuple(value_s))# 将字典中数据转成key-value的形式,以元组的方式输出
lst = list(a.items())
print(lst)lst1 = dict(lst)
print(lst1)# 使用pop函数
print(a.pop('city'))
print(a)print(a.pop('5666','不存在'))
print(a)# 随机删除
print(a.popitem())
print(a)# 清空所有元素
a.clear()
print(a)# 测试空字典布尔类型
print(bool(a))
四、字典的生成式和嵌套
字典生成式的一般形式为:
{key_expression: value_expression for item in iterable}
import randoma ={ i:random.randint(1,1000) for i in range(5)}
print(a)# 创建两个列表
ls = [11,12,13,14,15,16]
ls1 = ['1001','1002','1003','1004','1005',1006]a1 = {i:y for i,y in zip(ls,ls1)}
print(a1)
字典的嵌套:字典也可以嵌套,形成更复杂的结构。
# 创建一个嵌套字典
person = { 'name': 'Alice', 'details': { 'age': 30, 'city': 'New York', 'email': 'alice@example.com' }
} print(person['details']['city']) # 输出: New York
相关文章:

5.3章节python中字典:字典创建、元素访问、相关操作
1.字典的创建和删除 2.字典的访问和遍历 3.字典的相关操作 4.字典的生成式 一、字典的创建和删除 字典(dictionary)是一种用于存储键值对(key-value pairs)的数据结构。每个键(key)都映射到一个值…...

ECCV2024 Tracking 汇总
一、OneTrack: Demystifying the Conflict Between Detection and Tracking in End-to-End 3D Trackers paper: https://www.ecva.net/papers/eccv_2024/papers_ECCV/papers/01174.pdf 二、VETRA: A Dataset for Vehicle Tracking in Aerial Imagery paper&#…...
C语言知识点
命名规则: 字符组成:标识符只能由字母(A~Z,a~z)、数字(0~9)和下划线(_)组成。首字符要求:标识符的第一个字符必须是字母或下划线,不能是数字。长…...
ICMP协议以及ARP欺骗攻击
ping 命令使用的是 ICMP(Internet Control Message Protocol)协议,而不是 TCP 或 UDP 协议。因此,ping 命令并不使用特定的端口号。 ICMP 协议 ICMP 是一种网络层协议,主要用于在 IP 网络中传递控制消息。ping 命令利…...
qt5.12.12插件机制无法加载插件问题
环境:win11 vs2015 qt5.12.12 问题描述:确保插件代码正确的情况下,无法解析插件接口(即QPluginLoader类的instance(); 返回为空)。 问题现象:1、qt5.12.12的debug下无法解析;2、release下禁…...

机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
机器学习面试笔试知识点-线性回归、逻辑回归Logistics Regression和支持向量机SVM 一、线性回归1.线性回归的假设函数2.线性回归的损失函数(Loss Function)两者区别3.简述岭回归与Lasso回归以及使用场景4.什么场景下用L1、L2正则化5.什么是ElasticNet回归6.ElasticNet回归的使…...

SpringBoot民宿预订系统设计与实现
2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…...

linux环境下C程序的编译过程以及makefile的简单使用
在windows下,很多用来进行编程软件对于写好的文件,点击编译即可生成想要文件。如.exe可执行文件,.hex文件或者.bin文件等等。软件为我们省略了很多事。但是对于linux初学者来说,初次接触linux系统,面对命令行黑框框有点…...

【从零开始的LeetCode-算法】945. 使数组唯一的最小增量
给你一个整数数组 nums 。每次 move 操作将会选择任意一个满足 0 < i < nums.length 的下标 i,并将 nums[i] 递增 1。 返回使 nums 中的每个值都变成唯一的所需要的最少操作次数。 生成的测试用例保证答案在 32 位整数范围内。 示例 1: 输入&am…...

Java程序设计:spring boot(2)
目录 1 Spring MVC 零配置创建与部署 1.1 创建Spring MVC Web⼯程 1.2 pom.xml 添加坐标相关配置 1.3 添加源代码 1.4 添加视图 1.5 SpringMVC 配置类添加 1.6 入口文件代码添加 1.7 部署与测试 2 Spring Boot 概念&特点 2.1 框架概念 2.2 框架特点 2.3 Spring…...

服务器运维监控平台
云监控平台-简介 一:简介 “phoenix” 是一个灵活可配置的开源监控平台,主要用于监控应用程序、服务器、docker、数据库、网络、tcp 端口和 http 接口,通过实时收集、汇聚和分析监控信息,实现在发现异常时立刻推送告警信息&…...
css中 global 和 deep(两个样式穿透) 区别
1.:global(selector):这个伪类选择器会选择所有全局的、未被其他样式表覆盖的元素。换句话说,它会匹配所有没有被其他样式表(例如内联样式或外部样式表)所影响的元素。 :global(p) {color: red; }这段代码会将所有 <p> 元素…...

【星闪技术】WS63E模块的WiFi客户端测试
引言 我所计划的WS63E测试要实现MQTT联网,所以首先需要确保开发板连接WiFi。今天来测试一下WiFi功能。 程序分析 WiFi客户端的例子在src/application/samples/wifi/sta_sample目录下。这个例子看上去和hi3861的例子差不多。 这段程序是一个用于嵌入式设备的Wi-F…...

Android面试之5个Kotlin深度面试题:协程、密封类和高阶函数
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 面试题目1:Kotlin中的协程与线程的区别是什么?如何在Android中使用协程进行异步编程? 解答: 协…...

操作系统 和 初识进程
目录 操作系统(OS) 进程 操作系统(OS) 概念 操作系统即os,是一款软件。 任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。 操作系统的本质是一种进行软硬件管理的软件 笼统的理解…...

QT--Qlabel学习、获取文本和设置文本、文本对齐方式、文本换行、显示图片
QLabel 是 Qt 中的标签类,通常用于显示提示性的文本,也可以显示图像 对齐方式 用于设置标签中的内容在水平和垂直两个方向上的对齐方式,比如左对齐、右对齐、上对齐、下对齐、水平居中、垂直居中等。 // 获取和设置文本的对齐方式 Qt::Ali…...
深度学习:终身学习(Life-Long Learning)详解
终身学习(Life-Long Learning)详解 终身学习(也称为持续学习或增量学习)是机器学习中的一个重要研究领域,它关注如何使机器学习模型在完成一系列任务后,能够持续学习新任务,而不会忘记之前学到…...
前端UI框架
组件UI类 1.Element-Plus 2.uView 3.Vant 4.TDesign 5.uni-app 6.Tuniao-vue3 7. 可视化图标类 1.可视化图标VUE Data UI 2.Echart 图标库ICON 1.yesicon 2.Flaticon 3.Google Fonts 4.fontawesome 5.阿里巴巴 其他 1.CSS布局 2.web前端样式布局 3.中国色-颜色合集 托管…...

最佳副屏串流解决方案:如何低成本打造电脑拓展副屏?
如何低成本打造电脑拓展副屏?如果你有一台平板和一台电脑,想要提高打游戏、办公或是学习的效率。那么,使用网易GameViewer远程,就能帮你低成本打造电脑拓展副屏。 简单来说,副屏串流就是能让你多出一块显示屏。在打游戏…...

SQL Injection | SQL 注入概述
关注这个漏洞的其他相关笔记:SQL 注入漏洞 - 学习手册-CSDN博客 0x01:SQL 注入漏洞介绍 SQL 注入就是指 Web 应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是可控的,并且参数会带入到数据库中执行,导致…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...