set函数

news2024/10/2 1:40:32

set() 函数创建的集合具有以下特点:

  1. 无序性(Unordered):集合中的元素没有固定的顺序,每次输出的顺序可能不同。

  2. 唯一性(Unique):集合中的元素是唯一的,重复的元素会被自动去重,确保集合中不包含重复的元素。

  3. 不可变性(Immutable):集合中的元素必须是可哈希的,因此集合中不能包含可变对象,如列表、字典等。但集合本身是可变的,可以动态地添加、删除元素。

  4. 快速查找(Fast lookup):集合是基于哈希表实现的,因此查找集合中是否包含某个元素的操作非常高效,时间复杂度为 O(1)。

  5. 集合运算(Set operations):集合支持多种集合运算,如并集、交集、差集等,可以方便地进行集合间的操作和计算。

集合和字典的区别(尤其是创建空集合,而且集合类似于字典,但是只有key,没有value):

使用大括号 {}

my_set = {} 
print(type(my_set)) 
# 输出:<class 'dict'>

这种方法创建的对象是一个空的字典,而不是空的集合。

使用 set() 函数:

my_set = set() 
print(type(my_set))
 # 输出:<class 'set'>

集合操作函数如下:

difference()
set1={1,2,3,4,5}
set2={1,2,3,4}
print(set1.difference(set2))   #   实际上就是set1-set2;答案为{5}

set1={1,2,3}
set2={1,2,3,4}
print(set1.difference(set2))   #答案为 set(),因为返回一个set1存在的set2不存在的没有,于是返回一个空集合  那就是set()
set1={1,2,3,4,5}
set2={1,2,3,4}
print(set1-set2)    和

set1={1,2,3,4,5}
set2={1,2,3,4}
print(set1.difference(set2))  
的有区别

在Python中,set1 - set2set1.difference(set2) 都可以用来计算两个集合的差集,但是它们的使用方式略有不同。

  1. 使用 - 运算符:

    • set1 - set2 表示从 set1 中移除与 set2 中相同的元素,并返回结果。这种语法更类似于数学上的集合运算。
    • 示例:print(set1 - set2) 将打印出 {5},即 set1 中存在而 set2 中不存在的元素。
  2. 使用 difference() 方法:

    • set1.difference(set2) 也表示从 set1 中移除与 set2 中相同的元素,并返回结果。但这是一个方法调用,需要通过调用对象来调用。
    • 示例:print(set1.difference(set2)) 也将打印出 {5},与上面的示例相同。

总体上说,这两种方法的作用是相同的,都是计算两个集合的差集。使用哪种方法取决于你的个人偏好和代码上下文。

inetrsection()
set1={1,2,3,4,5}
set2={1,2,3,4}
print(set1.intersection(set2))
print(set1&set2)
union()
set1={1,2,3,4,5}
set2={1,2,3,4}
print(set1.union(set2))
print(set1|set2)
discard()

discard() 方法用于移除集合中的指定元素。如果元素在集合中存在,则移除该元素,如果不存在,则不执行任何操作。

# 创建一个集合
my_set = {1, 2, 3, 4, 5}

# 移除元素 3
my_set.discard(3)

print(my_set)  # 输出: {1, 2, 4, 5}

# 尝试移除一个不存在的元素
my_set.discard(6)

print(my_set)  # 输出: {1, 2, 4, 5},6并不会被添加到集合中

discard() 方法与 remove() 方法类似,但区别在于当要移除的元素不存在时,remove() 方法会引发 KeyError 异常,而 discard() 方法不会引发异常。

update()

update() 方法用于将一个集合的元素添加到另一个集合中。如果有重复的元素,只会添加一个副本。

# 创建两个集合
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# 将 set2 的元素添加到 set1 中
set1.update(set2)

print(set1)  # 输出: {1, 2, 3, 4, 5}

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

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

相关文章

LeetCode刷题笔记之两数相加【数组】【中等】

两数相加 刷题笔记 &#x1f565;日期&#xff1a; 2024/03/09 题目描述&#xff1a; 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同…

C++面试宝典一部分

今天整理书籍资料时&#xff0c;发现多年前打印的面试资料&#xff0c;拍照分享给大家。

挑战杯 基于计算机视觉的身份证识别系统

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于机器视觉的身份证识别系统 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-sen…

博士推荐 | 美国知名化工企业研发主管,高分子科学与工程博士

编辑 / 木子 审核 / 朝阳 伟骅英才 伟骅英才致力于以大数据、区块链、AI人工智能等前沿技术打造开放的人力资本生态&#xff0c;用科技解决职业领域问题&#xff0c;提升行业数字化服务水平&#xff0c;提供创新型的产业与人才一体化服务的人力资源解决方案和示范平台&#x…

Python学习之基础语法

一、HelloWorld 二、Python基础语法 2.1 字面量 定义&#xff1a;在代码中&#xff0c;被写下来的固定的值&#xff0c;称之为字面量。 常用的6种值的类型 字符串 Python中&#xff0c;字符串需要用双引号包围&#xff1b; 被双引号包围的都是字符串 666 13.14 "黑马…

【C++初阶】第五站:C/C++内存管理 (匹配使用,干货到位)

前言&#xff1a; 本文知识点&#xff1a; 1. C/C内存分布2. C语言中动态内存管理方式3. C中动态内存管理4. operator new与operator delete函数 5. new和delete的实现原理 &#xff08;干货在此&#xff09; 6. 定位new表达式(placement-new)7. 常见面试题 目录 C/C内…

MybatisPlus知识点总结(基于黑马2023MybatisPlus课程)

MybatisPlus知识点总结 配套资料 黑马微服务框架笔记&#xff0c;内含mpMybatisPlus.pptxMyBatis-Plus &#xff08;mp中文官网&#xff09; 快速入门 入门案例 使用MybatisPlus的基本步骤&#xff1a;1.引入MybatisPlus依赖&#xff0c;代替Mybatis依赖2.定义Mapper接口并继…

浅谈2024 年 AI 辅助研发趋势!

目录 ​编辑 引言 一、AI辅助研发现状 1. 技术发展 2. 工具集成 3. 应用场景 二、AI辅助研发趋势 1. 更高的自动化程度 2. 更高的智能化程度 3. 更多的领域应用 4. 更高的重视度 三、结论 四. 完结散花 悟已往之不谏&#xff0c;知来者犹可追 创作不易&#xff…

编码器-解码器模型(Encoder-Decoder)

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; 编码器-解码器模型简介 Encoder-Decoder算法是一种深度学习模型结构&#xff0c;广泛应用于自然语言处理&#xff08;NLP&#xff09;、图像处理…

红包题第一弹

下载附件&#xff0c;发现有86个压缩包 现每个压缩包里面都有图片&#xff0c;010打开图片末尾都有base64部分&#xff0c;并且每个压缩包里面图片末尾的base64长度一样&#xff0c;刚好每一张的base64长度为100。猜测需要拼接起来然后解码 写个python脚本 import os import …

Midjourney绘图欣赏系列(九)

Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子&#xff0c;它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同&#xff0c;Midjourney 是自筹资金且闭源的&#xff0c;因此确切了解其幕后内容尚不…

SpringBoot多数据源切换 多数据源事务解决方案 二

SpringBoot多数据源事务解决方案 https://blog.csdn.net/u013407099/article/details/124526396多数据源切换下保证事务解决方案 https://blog.csdn.net/reee112/article/details/90442542概述 前情提要 多数据源切换流程结构图如下所示&#xff0c;包含几个组成元素&#xff…

浪潮信息InManage升级发布 三大功能释放数据中心运维管理压力

近日&#xff0c;浪潮信息官网开放了数据中心管理平台InManage全新版本的开放体验渠道&#xff0c;升级后的InManage拥有更强大的功能体验&#xff0c;可以有效解决大模型等AIGC应用对于数据中心的运维管理压力&#xff0c;通过全新功能的加持&#xff0c;浪潮信息将让数据中心…

Flutter 开发环境搭建-VS Code篇

1.准备环境 Java SDK 下载及安装Flutter SDK 安装及配置环境变量 下载地址将flutter sdk解压目录下的bin目录放到系统环境变量中 检查环境&#xff0c;在系统终端中输入&#xff1a; # 打印flutter sdk版本号 flutter --version# 检查flutter运行环境 flutter doctor第一次运…

(C语言)strlen函数模拟实现(三种方法)

目录 1. strlrn函数 2. 注意事项&#xff1a; 3. 计数器法 4. 指针减指针方法&#xff1a; 5. 递归方法&#xff1a; 1. strlrn函数 头文件<string.h> 实现函数模拟须知&#xff1a; • 字符串以 \0 作为结束标志 &#xff0c;strlen函数返回的是在字符串中 \0 …

chrome高内存占用问题

chrome号称内存杀手不是盖的&#xff0c;不设设置的话&#xff0c;经常被它内存耗尽死机是常事。以下自用方法 1 自带的memory saver chrome://settings/performance PerformanceMemory Saver When on, Chromium frees up memory from inactive tabs. This gives active tab…

Matlab|10节点潮流计算程序(通用性强)

主要内容 潮流计算程序matlab 牛拉法 采用matlab对10节点进行潮流计算&#xff0c;采用牛拉法&#xff0c;程序运行可靠&#xff0c;牛拉法实现通用性强&#xff0c;可替换参数形成其他节点系统的潮流计算程序。 下载链接

011-keep-alive详解

keep-alive详解 1、简介2、keep-alive的使用效果未使用keep-alive的效果图使用keep-alive的效果图include和exclude指定是否缓存某些组件使用keep-alive的钩子函数执行顺序问题 3、keep-alive的应用场景举例4、总结 1、简介 keep-alive 是 Vue 的内置组件&#xff0c;当它包裹…

深入浅出计算机网络 day.2 概论⑤ 计算机网络的性能指标

请等一等&#xff0c; 用一个完整的春天 捣碎麦田 —— 24.3.10 一、计算机网络的性能指标 上 计算机网络的性能指标被用来从不同方面度量计算机网络的性能 常用的八个计算机网络性能指标 速率 比特&#xff08;bit&#xff09;是计算机中数据量的基本单位&#xff0c;一个比特…

SpringCloud-Alibaba-Nacos教程

SpringCloud-Alibaba-Nacos教程 下载地址 https://github.com/alibaba/nacos/releases/tag/2.2.3 直接进入bin包 运行cmd命令 startup.cmd -m standalone 运行成功后 进入nacos可视化页面 账号密码默认都是nacos http://localhost:8848/nacos 微服务入驻Nacos服务注册…