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

【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 列表、元组、字典、集合的区别

  1. 列表(List):

    • 列表是有序的数据结构,可以包含任意类型的元素,包括整数、字符串、列表、元组、字典等。
    • 列表使用方括号 [ ] 定义,元素之间用逗号 , 分隔。
    • 列表是可变的,可以通过索引修改或删除元素,也可以通过各种方法进行添加、插入、删除操作。
    • 列表允许包含重复的元素。
  2. 元组(Tuple):

    • 元组也是有序的数据结构,类似于列表,但元组是不可变的,一旦创建就不能修改。
    • 元组使用圆括号 ( ) 定义,元素之间用逗号 , 分隔。
    • 元组一旦创建后,不能修改其中的元素,因此可以作为字典的键或集合的元素,而列表不能。
  3. 字典(Dictionary):

    • 字典是一种键值对的数据结构,用于存储关联关系。
    • 字典使用花括号 { } 定义,键值对之间用冒号 : 分隔,键值对之间用逗号 , 分隔。
    • 字典中的键必须是不可变的数据类型,例如字符串、数字、元组,而值可以是任意类型的数据。
    • 字典是可变的,可以通过键来修改、添加或删除对应的值。
  4. 集合(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 框架中用于标识实体类中的主键字段的注解&#xff0c;它有一些可选的配置项。下面是详细说明&#xff1a; 首先&#xff0c;需要在项目中添加 MyBatis Plus 的依赖。可以在项目的 pom.xml 文件中添加以下代码&#xff1a; <dependency><…...

React AntDesign写一个导出数据的提示语 上面有跳转的路径,或者点击知道了,关闭该弹层

效果如下&#xff1a; 代码如下&#xff1a; ForwardDataCenterModal(_blank);export const ForwardDataCenterModal (target?: string) > {let contentBefore React.createElement(span, null, 数据正在处理中&#xff0c;请稍后前往);let contentAfter React.creat…...

小红书课程发光社群知识库,点亮哥专为超级个体设计解决方案

小红书课程点亮哥知识库 开创了学习小红书教育培训先河 针对超级个体轻创业的学习需求场景 创新推出了“知识库全新学习方式”。 一个人如何做好小红书? 超级个体轻创业,如何做好小红书? 通过打造个人IP、或者塑造老板个人品牌,来实现互联网变现,如何做好小红书? 就像挑…...

基于SpringBoot+Vue的摄影跟拍预定管理系统设计与实现(源码+lw+部署文档等)

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…...

HCIA 第二课总结

配置网络设备的明文密钥实验组网 实验拓扑 将一个路由器使用配置口进行连接 sys #进入系统视图模式 sysname RTA #给设备命名 user-interface console 0 #进入用户接口配置界面 authentication-mode password #配置认证模式为密钥认证 set authentication password ciphe…...

linux-------联网下载文件和配置

1.Wget Wget是一个十分常用命令行下载工具&#xff0c;多数Linux发行版本都默认包含这个工具。如果没有安装可在http://www.gnu.org/software/wget/wget.html下载最新版本&#xff0c;并使用如下命令编译安装&#xff1a; 1.#tar zxvf wget-1.9.1.tar.gz #cd wget-1.9.1 #./c…...

字典树Trie

Trie树又称字典树&#xff0c;前缀树。是一种可以高效查询前缀字符串的树&#xff0c;典型应用是用于统计&#xff0c;排序和保存大量的字符串&#xff08;但不仅限于字符串&#xff09;&#xff0c;所以经常被搜索引擎系统用于文本词频统计。 它的优点是&#xff1a;利用字符串…...

算法之桶排序算法

桶排序的基本思想是&#xff1a; 把数组 arr 划分为 n 个大小相同子区间&#xff08;桶&#xff09;&#xff0c;每个子区间各自排序&#xff0c;最 后合并 。计数排序是桶排序的一种特殊情况&#xff0c;可以把计数排序当成每个桶里只有一个元素的情况。 1.找出待排序数组中的…...

读kafka生产端源码,窥kafka设计之道(下)

背景 在上一篇文章《读kafka生产端源码&#xff0c;窥kafka设计之道&#xff08;上&#xff09;》 留下了kafka设计上比较优秀的一个点&#xff1b;内存的循环使用。本篇文章准备盘盘它。 好奇 为什么 kafka减少发送消息时向JVM频繁申请内存&#xff0c;就可以降低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 验证具有生存期的引用 生存期是我们已经在使用的另一种泛型。生存期不是确保一个类型具有我们想要的行为&#xff0c;而是确保引用在我们需要时有效。 我们在第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 在单机模式已经描述过&#xff0c;这里略过&#xff0c;有需要可以去看单机模式中的这部分&#xff0c;注意的是三台服务器都需要安装 安装…...

选择合适的图表,高效展现数据魅力

随着大数据时代的来临&#xff0c;数据的重要性愈发凸显&#xff0c;数据分析和可视化成为了决策和传递信息的重要手段。在数据可视化中&#xff0c;选择合适的图表是至关重要的一环&#xff0c;它能让数据更加生动、直观地呈现&#xff0c;为观众提供更有说服力的信息。本文将…...

springboot自动装配

SPI spi &#xff1a; service provider interface &#xff1a; 是java的一种服务提供机制&#xff0c;spi 允许开发者在不修改代码的情况下&#xff0c;为某个接口提供实现类&#xff0c;来扩展应用程序 将实现类独立到配置文件中&#xff0c;通过配置文件控制导入&#xff…...

python小记-队列

队列&#xff08;Queue&#xff09;是一种常见的数据结构&#xff0c;它遵循先进先出&#xff08;First-In-First-Out&#xff0c;FIFO&#xff09;的原则。在队列中&#xff0c;新元素&#xff08;也称为项&#xff09;总是添加到队列的末尾&#xff0c;而最早添加的元素总是在…...

SpringBoot——持久化技术

简单介绍 在之前我们使用的数据层持久化技术使用的是MyBatis或者是MyBatis-plus&#xff0c;其实都是一样的。在使用之前&#xff0c;我们要导入对应的坐标&#xff0c;然后配置MyBatis特有的配置&#xff0c;比如说Mapper接口&#xff0c;或者XML配置文件&#xff0c;那么除了…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...

自然语言处理——文本分类

文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益&#xff08;IG&#xff09; 分类器设计贝叶斯理论&#xff1a;线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别&#xff0c; 有单标签多类别文本分类和多…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)

cd /home 进入home盘 安装虚拟环境&#xff1a; 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境&#xff1a; virtualenv myenv 3、激活虚拟环境&#xff08;激活环境可以在当前环境下安装包&#xff09; source myenv/bin/activate 此时&#xff0c;终端…...

Linux安全加固:从攻防视角构建系统免疫

Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...

Qt的学习(二)

1. 创建Hello Word 两种方式&#xff0c;实现helloworld&#xff1a; 1.通过图形化的方式&#xff0c;在界面上创建出一个控件&#xff0c;显示helloworld 2.通过纯代码的方式&#xff0c;通过编写代码&#xff0c;在界面上创建控件&#xff0c; 显示hello world&#xff1b; …...