【100天精通python】Day9:数据结构_字典、集合
目录
目录
1 字典
1.1 字典的基本操作示例
1.2 字典推导式
2 集合
2.1 集合的常用操作示例
3 列表、元组、字典、集合的区别
1 字典
在Python中,字典(Dictionary)是一种无序的数据结构,用于存储键值对的集合。每个键(Key)必须是唯一的,而值(Value)可以是任意类型的数据。 字典使用大括号 “{} ”来定义,键和值之间用冒号 “: ”分隔,每对键值对之间用逗号“ ,” 分隔。 字典的键必须是不可变的数据类型(例如整数、字符串、元组),而值可以是任意数据类型,包括列表、字典等。
字典示意图:

1.1 字典的基本操作示例
包括创建访问修改删除字典中的值,获取字典的键和值,遍历字典
# 创建一个字典
my_dict = {"name": "Alice", "age": 30, "email": "alice@example.com"}# 访问字典中的值
print(my_dict["name"]) # 输出: Alice
print(my_dict["age"]) # 输出: 30
print(my_dict["email"]) # 输出: alice@example.com# 修改字典中的值
my_dict["age"] = 31# 添加新的键值对
my_dict["address"] = "123 Main St"# 删除键值对
del my_dict["email"]# 检查键是否存在
if "name" in my_dict:print("Name exists in the dictionary.")# 获取字典中所有键
keys = my_dict.keys()
print(keys) # 输出: dict_keys(['name', 'age', 'address'])# 获取字典中所有值
values = my_dict.values()
print(values) # 输出: dict_values(['Alice', 31, '123 Main St'])# 获取字典中所有键值对
items = my_dict.items()
print(items) # 输出: dict_items([('name', 'Alice'), ('age', 31), ('address', '123 Main St')])# 遍历字典
for key, value in my_dict.items():print(key, value)
# 输出:
# name Alice
# age 31
# address 123 Main St
字典在Python中经常用于存储具有关联关系的数据,例如存储用户信息、配置选项等。由于其高效的查找和修改特性,字典是Python编程中常用的数据结构之一。
1.2 字典推导式
应用字典推导式实现根据名字和星座创建一个字典python
# 假设有两个列表,一个是名字列表,一个是星座列表
names = ["张三", "李四", "王五", "赵六"]
constellations = ["白羊座", "双子座", "狮子座", "天蝎座"]# 使用字典推导式创建字典,将名字作为键,星座作为值
name_constellation_dict = {name: constellation for name, constellation in zip(names, constellations)}# 打印创建的字典
print(name_constellation_dict)
输出结果:
{'张三': '白羊座', '李四': '双子座', '王五': '狮子座', '赵六': '天蝎座'}
2 集合
在Python中,集合(Set)是一种无序且不重复的数据结构。集合中的元素必须是不可变的数据类型,例如数字、字符串、元组等,而不能包含可变的数据类型,例如列表、字典等。集合使用大括号 {} 来定义,元素之间用逗号 , 分隔。
集合的主要特点是它不允许包含重复的元素,因此可以用于去除重复项。另外,集合支持一些基本的集合运算,例如并集、交集、差集等。
2.1 集合的常用操作示例
包括创建添加删除集合元素,遍历集合,集合的交集并集差集。
# 创建一个集合
my_set = {1, 2, 3, 4, 5}# 添加元素到集合
my_set.add(6)# 删除集合中的元素
my_set.remove(3)# 检查元素是否存在于集合中
if 4 in my_set:print("4 exists in the set.")# 获取集合的长度
length = len(my_set)
print("Length of the set:", length)# 遍历集合
for item in my_set:print(item)# 创建另一个集合
other_set = {4, 5, 6, 7}# 计算并集
union_set = my_set | other_set
print("Union set:", union_set)# 计算交集
intersection_set = my_set & other_set
print("Intersection set:", intersection_set)# 计算差集
difference_set = my_set - other_set
print("Difference set:", difference_set)
3 列表、元组、字典、集合的区别

列表(List):
- 列表是有序的数据结构,可以包含任意类型的元素,包括整数、字符串、列表、元组、字典等。
- 列表使用方括号
[ ]定义,元素之间用逗号,分隔。- 列表是可变的,可以通过索引修改或删除元素,也可以通过各种方法进行添加、插入、删除操作。
- 列表允许包含重复的元素。
元组(Tuple):
- 元组也是有序的数据结构,类似于列表,但元组是不可变的,一旦创建就不能修改。
- 元组使用圆括号
( )定义,元素之间用逗号,分隔。- 元组一旦创建后,不能修改其中的元素,因此可以作为字典的键或集合的元素,而列表不能。
字典(Dictionary):
- 字典是一种键值对的数据结构,用于存储关联关系。
- 字典使用花括号
{ }定义,键值对之间用冒号:分隔,键值对之间用逗号,分隔。- 字典中的键必须是不可变的数据类型,例如字符串、数字、元组,而值可以是任意类型的数据。
- 字典是可变的,可以通过键来修改、添加或删除对应的值。
集合(Set):
- 集合是无序且不重复的数据结构,只能包含不可变的元素,不能包含列表、字典等可变的数据类型。
- 集合使用花括号
{ }定义,元素之间用逗号,分隔。- 集合是可变的,可以通过方法进行添加、删除等操作。
- 集合可以用于去除列表中的重复项,以及执行一些基本的集合运算,如并集、交集、差集等。
相关文章:
【100天精通python】Day9:数据结构_字典、集合
目录 目录 1 字典 1.1 字典的基本操作示例 1.2 字典推导式 2 集合 2.1 集合的常用操作示例 3 列表、元组、字典、集合的区别 1 字典 在Python中,字典(Dictionary)是一种无序的数据结构,用于存储键值对的集合。每个…...
上海VR全景展示,快速了解VR全景拍摄
导语: 随着科技的不断进步,虚拟现实技术的应用日益广泛。在这其中,VR全景图片作为一种数字化助力的全景拍摄方式,正逐渐成为人们关注的焦点。通过数字化技术,VR全景图片能够以360度全方位的视角呈现真实的场景&#x…...
VScode远程不用再输入密码操作
安装插件remote development 1.先检查自己电脑上有没有生成一对公钥和私钥。(一般会在这个目录) 如果没有的话就自己生成一下。 打开命令行输入以下命令 ssh-keygen -t rsa2.在虚拟机中先看一下有没有公钥和私钥。如果没有的话就自己生成一下。 打开…...
MyBatis基本用法-@TableId
TableId 注解是 MyBatis Plus 框架中用于标识实体类中的主键字段的注解,它有一些可选的配置项。下面是详细说明: 首先,需要在项目中添加 MyBatis Plus 的依赖。可以在项目的 pom.xml 文件中添加以下代码: <dependency><…...
React AntDesign写一个导出数据的提示语 上面有跳转的路径,或者点击知道了,关闭该弹层
效果如下: 代码如下: ForwardDataCenterModal(_blank);export const ForwardDataCenterModal (target?: string) > {let contentBefore React.createElement(span, null, 数据正在处理中,请稍后前往);let contentAfter React.creat…...
小红书课程发光社群知识库,点亮哥专为超级个体设计解决方案
小红书课程点亮哥知识库 开创了学习小红书教育培训先河 针对超级个体轻创业的学习需求场景 创新推出了“知识库全新学习方式”。 一个人如何做好小红书? 超级个体轻创业,如何做好小红书? 通过打造个人IP、或者塑造老板个人品牌,来实现互联网变现,如何做好小红书? 就像挑…...
基于SpringBoot+Vue的摄影跟拍预定管理系统设计与实现(源码+lw+部署文档等)
博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…...
HCIA 第二课总结
配置网络设备的明文密钥实验组网 实验拓扑 将一个路由器使用配置口进行连接 sys #进入系统视图模式 sysname RTA #给设备命名 user-interface console 0 #进入用户接口配置界面 authentication-mode password #配置认证模式为密钥认证 set authentication password ciphe…...
linux-------联网下载文件和配置
1.Wget Wget是一个十分常用命令行下载工具,多数Linux发行版本都默认包含这个工具。如果没有安装可在http://www.gnu.org/software/wget/wget.html下载最新版本,并使用如下命令编译安装: 1.#tar zxvf wget-1.9.1.tar.gz #cd wget-1.9.1 #./c…...
字典树Trie
Trie树又称字典树,前缀树。是一种可以高效查询前缀字符串的树,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。 它的优点是:利用字符串…...
算法之桶排序算法
桶排序的基本思想是: 把数组 arr 划分为 n 个大小相同子区间(桶),每个子区间各自排序,最 后合并 。计数排序是桶排序的一种特殊情况,可以把计数排序当成每个桶里只有一个元素的情况。 1.找出待排序数组中的…...
读kafka生产端源码,窥kafka设计之道(下)
背景 在上一篇文章《读kafka生产端源码,窥kafka设计之道(上)》 留下了kafka设计上比较优秀的一个点;内存的循环使用。本篇文章准备盘盘它。 好奇 为什么 kafka减少发送消息时向JVM频繁申请内存,就可以降低JVM GC的执…...
Pytorch个人学习记录总结 06
目录 神经网络-卷积层 torch.nn.Conv2d 神经网络-最大池化的使用 torch.nn.MaxPool2d 神经网络-卷积层 torch.nn.Conv2d torch.nn.Conv2d的官方文档地址 CLASS torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride1, padding0, dilation1, groups1, biasTrue,…...
Rust之泛型、特性和生命期(四):验证有生存期的引用
开发环境 Windows 10Rust 1.71.0 VS Code 1.80.1 项目工程 这里继续沿用上次工程rust-demo 验证具有生存期的引用 生存期是我们已经在使用的另一种泛型。生存期不是确保一个类型具有我们想要的行为,而是确保引用在我们需要时有效。 我们在第4章“引用和借用”一…...
kubesphere安装中间件
kubesphere安装mysql 创建configMap [client] default-character-setutf8mb4[mysql] default-character-setutf8mb4[mysqld] init_connectSET collation_connection utf8mb4_unicode_ci init_connectSET NAMES utf8mb4 character-set-serverutf8mb4 collation-serverutf8mb4_…...
zookeeper学习(二) 集群模式安装
前置环境 三台centos7服务器 192.168.2.201 192.168.2.202 192.168.2.150三台服务器都需要安装jdk1.8以上zookeeper安装包 安装jdk 在单机模式已经描述过,这里略过,有需要可以去看单机模式中的这部分,注意的是三台服务器都需要安装 安装…...
选择合适的图表,高效展现数据魅力
随着大数据时代的来临,数据的重要性愈发凸显,数据分析和可视化成为了决策和传递信息的重要手段。在数据可视化中,选择合适的图表是至关重要的一环,它能让数据更加生动、直观地呈现,为观众提供更有说服力的信息。本文将…...
springboot自动装配
SPI spi : service provider interface : 是java的一种服务提供机制,spi 允许开发者在不修改代码的情况下,为某个接口提供实现类,来扩展应用程序 将实现类独立到配置文件中,通过配置文件控制导入ÿ…...
python小记-队列
队列(Queue)是一种常见的数据结构,它遵循先进先出(First-In-First-Out,FIFO)的原则。在队列中,新元素(也称为项)总是添加到队列的末尾,而最早添加的元素总是在…...
SpringBoot——持久化技术
简单介绍 在之前我们使用的数据层持久化技术使用的是MyBatis或者是MyBatis-plus,其实都是一样的。在使用之前,我们要导入对应的坐标,然后配置MyBatis特有的配置,比如说Mapper接口,或者XML配置文件,那么除了…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...
