Python中Set常用方法

news2024/9/30 19:39:33
# 创建集合:
#
# 使用 set() 或 {} 来创建一个空集合。
# 使用 set(iterable) 来创建一个包含特定元素的集合。
empty_set = set()
print(empty_set)  # set()

# 创建一个包含特定元素的集合
my_set = {1, 2, 3, 4}
print(my_set)  # {1, 2, 3, 4}

# 添加元素:
#
# 使用 add(element) 方法向集合中添加一个元素。
# 使用 update(iterable) 方法向集合中添加多个元素。
my_set.add(5)
print(my_set)  # {1, 2, 3, 4, 5}
my_set.update([6, 7, 8]) print(my_set) # {1, 2, 3, 4, 5, 6, 7, 8}

# 删除元素:
#
# 使用 remove(element) 方法删除集合中的一个元素。如果元素不存在,会抛出 KeyError 异常。
# 使用 discard(element) 方法删除集合中的一个元素,如果元素不存在,不会抛出异常。
# 使用 pop() 方法删除并返回集合中的一个元素。如果集合为空,会抛出 KeyError 异常。注意:多次使用pop()方法会返回不同的元素
# 使用 clear() 方法清空集合。

my_set.remove(1)
print(my_set)  # {2, 3, 4, 5, 6, 7, 8}

my_set.discard(2)
print(my_set)  # {3, 4, 5, 6, 7, 8}

my_set.pop()
print(my_set)  # {3, 4, 5, 6, 7}

my_set.clear()
print(my_set)  # set()

# 集合操作:
#
# union(set2, ...):返回一个新集合,包含两个集合的所有元素。注意:会自动去重
# intersection(set2, ...):返回一个新集合,包含两个集合的共有元素。
# difference(set2, ...):返回一个新集合,包含第一个集合中独有的元素。
# symmetric_difference(set2):返回一个新集合,包含两个集合中独有的元素。
set1 = {1, 2, 3}
set2 = {2, 3, 4}

union_set = set1.union(set2)
print(union_set)  # {1, 2, 3, 4}

intersection_set = set1.intersection(set2)
print(intersection_set)  # {2, 3}

difference_set = set1.difference(set2)
print(difference_set)  # {1}

symmetric_difference_set = set1.symmetric_difference(set2)
print(symmetric_difference_set)  # {1, 4}

# 判断元素是否存在:
#
# 使用 in 关键字检查元素是否存在于集合中。
# 使用 not in 关键字检查元素是否不存在于集合中。
print(1 in my_set)  # False
print(2 not in my_set)  # True

# 集合转换:
#
# list(set):将集合转换为列表。
# tuple(set):将集合转换为元组。
list_set = list(my_set)
print(list_set)  # [3, 4]

tuple_set = tuple(my_set)
print(tuple_set)  # (3, 4)

# 其他方法
# len(set):返回集合中元素的数量。
# set.copy():返回集合的浅拷贝。
# set.issubset(set2):判断集合是否是另一个集合的子集。
# set.issuperset(set2):判断集合是否是另一个集合的超集。
print(len(my_set))  # 2
print(my_set.copy())  # {3, 4}
print(my_set.issubset(set2))  # False
print(my_set.issuperset(set2))  # False

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

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

相关文章

兴业周报|十一黄金周即将到来~楼市利好政策重磅来袭

黄金地段:社区位于东三环核心位置,定位于CBD商务圈旁的纯居住区,容积率不足2.8,绿化率达到50%以上,树种超过80余种,实现“每个楼座都在园林中”的效果。 配套成熟:周边配套齐全,富力…

Error和Exception

1.异常体系结构 (1)Java把异常当作对象处理,定义一个基类java.lang.Throwable作为所有异常的超类。 (2)Java API中定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception 2.什么是…

湿气缠身不用愁,拔罐疗法助你轻松“祛湿”!

在这个快节奏的时代,我们常常忽略了身体发出的微妙信号,其中,“湿气重”便是许多现代人面临的隐形健康挑战。湿气,中医理论中的一个重要概念,它像无形的枷锁,悄悄影响着我们的体态、精神状态乃至生活质量。…

react-问卷星项目(3)

项目实战 React Hooks 缓存,性能优化,提升时间效率,但是不要为了技术而优化,应该是为了业务而进行优化 内置Hooks保证基础功能,灵活配合实现业务功能,抽离公共部分,自定义Hooks或者第三方&am…

鸿蒙开发(NEXT/API 12)【穿戴设备信息查询】手机侧应用开发

// 在使用Wear Engine服务前,请导入WearEngine与相关模块 import { wearEngine } from kit.WearEngine; import { BusinessError } from kit.BasicServicesKit;查询穿戴设备是否支持某种WearEngine能力集 注意 该接口的调用需要在开发者联盟申请设备基础信息权限。…

Java 异常处理机制

目录 1.异常处理的五个关键字 测试一:理解try catch finally 的作用 测试二:设置想要捕获的异常类型 测试三:可以写多个catch。 2.异常快捷键 3.在方法体中抛出异常用throw;在方法参数后面抛出异常用throws (1&…

Ubuntu 手动安装 ollama

官方linux安装ollama命令: curl -fsSL https://ollama.com/install.sh | sh 运行结果: 由于官方提供的ollama安装命令老是安装中断,所以我选择手动安装。 手动安装步骤: 官网链接:ollama/docs/linux.md at main ollama/ollama…

盛事启幕 | 第三届OpenHarmony技术大会重磅官宣,邀您共绘智联未来

未来已来,科技何向? ——10月12日-13日众多大咖齐聚上海 聚焦OpenHarmony生态前沿 与您一同解码技术的下一片蓝海

【STM32单片机_(HAL库)】4-1【定时器TIM】定时器中断点灯实验

1.硬件 STM32单片机最小系统LED灯模块 2.软件 timer驱动文件添加定时器HAL驱动层文件添加GPIO常用函数定时器中断配置流程main.c程序 #include "sys.h" #include "delay.h" #include "led.h" #include "timer.h"int main(void) {H…

seata服务端部署

1.下载seata 官网下载地址:http://seata.io/zh-cn/blog/download.html 或者下载 作者已经下载的压缩包1.4.0 注意!!! 要参考对应的版本,否则可能出现无法正常启动的情况。 参考文档 下载完毕后解压压缩文件 2.修改配…

6个Android ANR面试题和优化方案

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 面试题 1、 解释什么是ANR以及它在Android中是如何产生的? ANR是指应用程序未响应,通常是因为主线程被阻塞导致无法及…

【性能测试】jmeter工具核心组件说明手册

前言 Apache JMeter 是一个用于压力测试和性能测量的开源工具,它被设计用来测试静态和动态资源(例如静态文件、CGI接口、Java 对象、数据库和 FTP 服务器),以及分析整体系统性能。JMeter提供了丰富的组件集,使得用户可…

国内邮件推送防拦截秘籍与内容优化技巧详解

企业需优化邮件内容、选择优质服务商、配置域名验证,避免垃圾邮件特征,控制发送频率和策略,以提高邮件送达率和用户互动率。ZohoCampaigns等平台提供多项功能助力邮件营销。 一、了解邮件拦截的常见原因 在讨论如何避免邮件被拦截之前&#…

Cookie Session Token的各种知识

Session 1、为什么有session? 因为HTTP是无状态协议,每次请求服务器并不知道历史请求的记录,Session和Cookie主要就是为了弥补无状态的特性 2、Session是什么 客户端请求时,服务端开辟一块内存空间存放Session对象,存…

(二)大模型调用

一、基本概念 1.1、Prompt 大模型的所有输入,即,我们每一次访问大模型的输入为一个 Prompt, 而大模型给我们的返回结果则被称为 Completion。 1.2、Temperature LLM 生成是具有随机性的,在模型的顶层通过选取不同预测概率的预测结…

SOLIDWORKS 2025 PDM 更新亮点:效率与性能的提升!

SOLIDWORKS PDM 持续致力于为用户提供更加高效、直观且灵活的数据管理解决方案。SOLIDWORKS 2025 也对PDM功能进行了多方面的改进,旨在提高工作效率,并增强系统性能。 以下是SOLIDWORKS 2025 PDM中的几项关键功能的详细介绍。 1经过改进的材料明细表可…

【C++】面向对象编程的三大特性:深入解析多态机制

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与QueuePriori…

这次PostgreSQL事故后,我把表膨胀清理工具撸了一遍

📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、My…

预训练技巧:在训练末尾对领域数据上采样

1. 简介 介绍了一种在模型训练结尾对领域数据上采样能够提升在benchmark上的指标。通过实验表明上采样比例在10-20%是能够在通用语言能力与目标benchmark保持权衡的最好比例。 2. 实验 数据:1T模型:decoder-only结构,7B大小,具…

Linux:进程间通信之共享内存

我们无论使用命名管道还是匿名管道,都是在文件层面上实现的通信,实际上还有基于系统层面的system v标准的进程间通信方式。 因为操作系统不相信用户,所以用户使用的时候只能通过调用的方式 进程间通信的本质:先让不同的进程看到…