Python 算法基础篇之集合和字典:创建、访问、添加和删除元素

news2024/10/7 2:32:53

Python 算法基础篇之集合和字典:创建、访问、添加和删除元素

  • 引言
  • 1. 集合的概念和创建
  • 2. 集合的访问
  • 3. 集合的添加和删除元素
    • a ) 添加元素
    • b ) 删除元素
  • 4. 字典的概念和创建
  • 5. 字典的访问
  • 6. 字典的添加和删除元素
    • a ) 添加元素
    • b ) 删除元素
  • 总结

引言

集合和字典是 Python 中非常有用的数据结构,用于存储和操作一组数据。在算法和数据结构中,集合和字典是常见的数据类型。本篇博客将介绍集合和字典的基本概念,包括创建、访问、添加和删除元素,并通过实例代码演示它们的应用。

😃😄 ❤️ ❤️ ❤️

1. 集合的概念和创建

集合是一种无序的、可变的数据结构,用于存储一组不重复的元素。在 Python 中,我们可以使用大括号 {}set() 函数来创建集合。下面是一个示例代码:

# 创建集合
set1 = {1, 2, 3, 4, 5}
set2 = set([3, 4, 5, 6, 7])

# 打印集合
print("集合1:", set1)
print("集合2:", set2)

代码解释:上述代码演示了两种不同方式创建集合。集合使用大括号 {} 来定义,其中的元素不允许重复。可以使用 set() 函数来将列表或其他可迭代对象转换为集合。

集合的创建使得我们能够存储一组不重复的数据,方便地进行去重操作。

2. 集合的访问

由于集合是无序的,不能通过索引访问元素。我们可以使用循环或成员运算符 in 来访问集合中的元素。下面是一个示例代码:

# 集合的访问
set1 = {1, 2, 3, 4, 5}

# 循环遍历集合
print("循环遍历集合:")
for item in set1:
    print(item)

# 使用in运算符判断元素是否在集合中
print("元素2是否在集合中:", 2 in set1)
print("元素6是否在集合中:", 6 in set1)

代码解释:上述代码演示了如何通过循环遍历集合中的元素,并使用成员运算符 in 判断元素是否在集合中。由于集合是无序的,所以只能通过循环或成员运算符来判断元素是否在集合中。

集合的访问使得我们能够轻松地检查元素是否存在于集合中。

3. 集合的添加和删除元素

集合支持添加和删除元素的操作,可以根据需要动态地修改数据。下面是一些示例代码:

a ) 添加元素

# 添加元素
set1 = {1, 2, 3, 4, 5}

# 添加单个元素
set1.add(6)

# 添加多个元素
set1.update({7, 8, 9})

# 打印集合
print("添加元素后的集合:", set1)

代码解释:上述代码演示了集合方法 addupdate 的使用。 add 方法可以添加单个元素到集合中, update 方法用于添加多个元素,可以传入一个集合或其他可迭代对象。

b ) 删除元素

# 删除元素
set1 = {1, 2, 3, 4, 5}

# 删除指定元素
set1.remove(3)

# 删除指定元素,如果元素不存在不会报错
set1.discard(6)

# 随机删除一个元素
set1.pop()

# 清空集合
set1.clear()

# 打印集合
print("删除元素后的集合:", set1)

代码解释:上述代码演示了集合方法 removediscardpopclear 的使用。 remove 方法可以删除指定的元素,如果元素不存在会报错; discard 方法也可以删除指定的元素,但如果元素不存在不会报错; pop 方法用于随机删除一个元素; clear 方法用于清空集合中的所有元素。

集合的添加和删除操作使得我们能够动态地修改集合的内容,适应不同的需求。

4. 字典的概念和创建

字典是一种无序的、可变的数据结构,用于存储键值对。在 Python 中,我们可以使用大括号 {}dict() 函数来创建字典。下面是一个示例代码:

# 创建字典
dict1 = {'name': 'Alice', 'age': 25, 'city': 'New York'}
dict2 = dict(zip(['name', 'age', 'city'], ['Bob', 30, 'San Francisco']))

# 打印字典
print("字典1:", dict1)
print("字典2:", dict2)

代码解释:上述代码演示了两种不同方式创建字典。字典使用大括号 {} 来定义,其中的每个元素是一个键值对,键和值用冒号 : 分隔。可以使用 dict() 函数和 zip() 函数将两个列表转换为字典。

字典的创建使得我们能够以键值对的形式存储和操作数据。

5. 字典的访问

字典中的每个

元素都有一个键,可以通过键来访问对应的值。下面是一个示例代码:

# 字典的访问
dict1 = {'name': 'Alice', 'age': 25, 'city': 'New York'}

# 通过键访问值
print("姓名:", dict1['name'])
print("年龄:", dict1['age'])
print("城市:", dict1['city'])

代码解释:上述代码演示了如何通过键来访问字典中的值。使用方括号和键来指定要访问的元素。如果指定的键不存在,会抛出 KeyError 异常。

通过键访问字典中的值使得我们能够根据键快速获取对应的数据。

6. 字典的添加和删除元素

字典支持添加和删除元素的操作,可以根据需要动态地修改数据。下面是一些示例代码:

a ) 添加元素

# 添加元素
dict1 = {'name': 'Alice', 'age': 25}

# 添加单个元素
dict1['city'] = 'New York'

# 添加多个元素
dict1.update({'gender': 'Female', 'occupation': 'Engineer'})

# 打印字典
print("添加元素后的字典:", dict1)

代码解释:上述代码演示了字典方法 update 和直接赋值的方式来添加元素。使用方括号和键来指定要添加的元素。通过 update 方法可以添加多个键值对。

b ) 删除元素

# 删除元素
dict1 = {'name': 'Alice', 'age': 25, 'city': 'New York'}

# 删除指定键的元素
del dict1['age']

# 删除指定键的元素,如果键不存在不会报错
dict1.pop('gender', None)

# 清空字典
dict1.clear()

# 打印字典
print("删除元素后的字典:", dict1)

代码解释:上述代码演示了字典方法 delpopclear 的使用。 del 语句可以删除指定的键值对,如果键不存在会抛出 KeyError 异常; pop 方法可以删除指定键的元素,如果键不存在不会报错; clear 方法用于清空字典中的所有元素。

字典的添加和删除操作使得我们能够动态地修改字典的内容,适应不同的需求。

总结

本篇博客介绍了集合和字典的基本概念,并通过实例代码演示了它们的创建、访问、添加和删除元素的操作。集合和字典是 Python 中非常有用的数据结构,用于存储和操作一组数据。

[ 专栏推荐 ]
😃 Python 算法初阶:入门篇》😄
❤️【简介】:本课程是针对 Python 初学者设计的算法基础入门课程,涵盖算法概念、时间复杂度、空间复杂度等基础知识。通过实例演示线性搜索、二分搜索等算法,并介绍哈希表、深度优先搜索、广度优先搜索等搜索算法。此课程将为学员提供扎实的 Python 编程基础与算法入门,为解决实际问题打下坚实基础。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/782834.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SAP从放弃到入门系列之批次派生-Batch Derivation-Part2

文章目录 一、派生的类型1.1 静态派生1.2 动态派生 二、派生的方向 通过批次派生的基本配置和简单功能的介绍,大家应该对批次派生有一个基本的了解,这篇文章从批次派生的类型和批次派生的方向两个维度更深入的聊一下它的功能。 一、派生的类型 派生的类…

OPTEE之sonarlint静态代码分析实战一——optee_os

ATF(TF-A)/OPTEE之静态代码分析汇总 一、OPTEE源码下载及分析 对OPTEE实施soanrlint静态代码扫描之前,先到官方网站下载源码。官方网站位于github,网址OP-TEE GitHub。 其中我们重点关注optee_os和optee_client。此页面下的optee_linuxdriver已废弃,该部分最终会编…

数据结构:二叉树遍历

概述 二叉树的遍历是指按照某条搜索路径访问二叉树中的每个结点,使得每个结点均被访问一次,而且仅被访问一次。二叉树的遍历方式主要有:先序遍历、中序遍历、后序遍历、层次遍历。先序、中序、后序其实值得是父节点被访问的次序。若在遍历过…

一.MySQL的主从复制

目录 一.MySQL的主从复制 1.2主从复制的工作过程和原理 1.2.1主从复制工作过程为两日志和三线程 ​编辑 1.2.2主从复制的工作原理 1.3主从复制延迟的原因 1.4主从复制的架构 1.5.MySQL四种同步方式 1.5.1异步复制(Async Replication) 1.5.2 同步复制(Sync Re…

Linux内核子系统--进程管理剖析

Linux 是一个计算需求不断变化的非常动态的系统。 Linux 计算需求的表示以进程的公共抽象为中心,进程可以是短期的(从命令行执行的命令)或长期的(网络服务)。因此,进程的总体管理及其调度非常重要。 在用户…

EMC学习笔记(十八)滤波器设计

滤波器设计 1.标准要求2.设计理论2.1 滤波器电路设计过程2.2 插入损耗定义2.3 原始噪声测量2.4 插入损耗计算2.5 滤波失配原则2.6 滤波拓扑选择2.7 滤波参数计算2.8 滤波参数确定 Tips:学习资料来自网络,仅供学习使用。 EMI滤波器设计(汽车电…

JVM系列(9)——调优初体验

学习这篇文章之前,要了解: JVM系列(2)——垃圾回收 JVM系列(3)——内存分配与回收策略 先了解概念: 吞吐量:用户执行时间/(用户执行时间垃圾回收时间);就是干正经事的时间…

C++语法(25)--- 异常与智能指针

C语法(24) C11_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/131054426?spm1001.2014.3001.5501 1.异常 try { // 保护的标识代码 }catch( ExceptionName e1 ) { // catch 块 }catch( ExceptionName e2 ) { // catch 块…

RT-Thread qemu mps2-an385 bsp 移植制作 :BSP 制作篇

下载 V2M-MPS2_CMx_BSP mps2 的资料很少,所以唯一能下载的是 ARM 官方的 V2M-MPS2_CMx_BSP,下载地址为: https://keilpack.azureedge.net/pack/Keil.V2M-MPS2_CMx_BSP.1.8.0.pack 其实这是个 Keil MDK5 的 Pack 包,安装后&#x…

JAVA-ReentrantLock(五)

概念 在Java中,“lock”(锁)是一种用于并发控制的机制。它用于确保在多线程环境中,同一时刻只有一个线程可以访问共享资源或临界区。当一个线程获得了锁,其他线程将被阻塞,直到持有锁的线程释放它。这样可…

Cocos Creator 3.8 后期效果 Shader 编写(1/2) 基础篇

原文链接:Cocos Creator 3.8 后期效果 Shader 编写(1/2) 基础篇 在 Cocos Creator 3.8 版本中,新增了不少实用的特性,其中我最喜欢的,就是它自带后期效果管线,并且还内置了许多高级效果。 有用…

XUbuntu22.04之Linux剪切板和selection primary区域(一百八十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

二、Java框架基础02 XML

二、XML 2.1 XML 简介 XML 即可扩展标记语言,一种简单的数据存储语言,使用一系列简单的标记来描述结构化数据 XML 的特点 XML 与操作系统,编程语言的开发平台无关规范统一,实现不同系统之间的数据交互 2.1.1 XML 的文档结构 以下…

vulnhub靶场之CengBox3

1.信息收集 输入命令:netdiscover -i eth0 -r 192.168.239.0 ,发现181机器存活 输入命令nmap -p- -sV -O -Pn -A 192.168.239.181 ,进行端口探测,发现存在22、80、443端口,还发现存在域名ceng-company.vm。 将域名c…

【linux基础】05-linux文件系统

概述 在Linux中,文件系统是一种分层结构,它将文件和目录组织成树状结构。文件系统从“根”目录开始,该目录由单个正斜杠(“/”)表示。 如下图所示: Linux 支持多种类型的文件系统,包括: Ext4:这是大多数 Linux 发行版的默认文件系统。它是一个日志文件系统,提供良…

拉格朗日乘数法(Lagrange)的推导

同济版高数上,关于拉格朗日乘数法,以及好多知识点说的语焉不详、模棱两可,在阅读了知乎等博主的几篇文章后,才算勉强弄懂了该知识的原理。 首先说一下高数上隐函数求导。所谓的隐函数求导,就是在方程中多个变量之间的…

如何使用Java 实现excel模板导出---多sheet导出?

实现多个sheet的excel导出功能 效果展示&#xff1a; maven依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency><dependency><groupId>or…

泛微E-Cology XXE漏洞复现(QVD-2023-16177)

0x01 产品简介 泛微协同管理应用平台E-Cology是一套兼具企业信息门户、知识文档管理、工作流程管理、人力资源管理、客户关系管理、项目管理、财务管理、资产管理、供应链管理、数据中心功能的企业大型协同管理平台。 0x02 漏洞概述 泛微e-cology某处功能点最初针对用户输入的…

STM32 点灯实现 7.18

嵌入式&#xff1a; 以应用为中心&#xff0c;以专用计算机为基础&#xff0c;软硬件可裁剪ARM A系列芯片&#xff1a;高端芯片&#xff0c;实现人机互动 R系列&#xff1a;实现时效性 M系列&#xff1a;低端芯片&#xff0c;控制硬件设备&#xff0c;灯&#xff0c;风扇....…

Springboot初识(一)

一.什么是Spring Boot Spring Boot是一个开源的、用于简化Spring应用程序开发的框架。它是Spring项目的一个子项目&#xff0c;旨在为Spring应用程序提供更快速、更便捷的开发体验。Spring Boot基于Spring框架&#xff0c;同时也整合了其他Spring项目和第三方库&#xff0c;使…