【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配置文件,那么除了…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...
stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)
这是系统中断服务程序的默认处理汇编函数,如果我们没有定义实现某个中断函数,那么当stm32产生了该中断时,就会默认跑这里来了,所以我们打开了什么中断,一定要记得实现对应的系统中断函数,否则会进来一直循环…...
【技巧】dify前端源代码修改第一弹-增加tab页
回到目录 【技巧】dify前端源代码修改第一弹-增加tab页 尝试修改dify的前端源代码,在知识库增加一个tab页"HELLO WORLD",完成后的效果如下 [gif01] 1. 前端代码进入调试模式 参考 【部署】win10的wsl环境下启动dify的web前端服务 启动调试…...
