Python学习之set()集合

Python | 集合(set)运算之intersection() 简介 在做力扣题的时候,有一个思路是要求解两个字符串的交集。 一般来说,求解交集的思路是遍历两个字符串,判断有无相等,有相等则添加到交集中,直到循环结束。 但是这样做,会增加很多的不必要的遍历:比如说,当一个字符串中有多个相同的元素时,该元素会被遍历多次。 因此,在求解时,我们可以先将字符串转换为set集合类型。集合中存储的元素没有顺序,且互异(即元素不可重复)。 算例 求字符串m“abcdaaa” 与 字符串n“bcddses”是否存在交集 首先将字符串转换为set类型: m = set(m) n 阅读详情

python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算。

sets 支持 x in set, len(set),和 for x in set。作为一个无序的集合,sets不记录元素位置或者插入点。因此,sets不支持 indexing, slicing, 或其它类序列(sequence-like)的操作。

下面来点简单的小例子说明把。


>>> x = set('spam')
>>> y = set(['h','a','m'])
>>> x, y
(set(['a', 'p', 's', 'm']), set(['a', 'h', 'm']))


再来些小应用。


>>> x & y # 交集
set(['a', 'm'])


>>> x | y # 并集
set(['a', 'p', 's', 'h', 'm'])


>>> x - y # 差集
set(['p', 's'])


记得以前个网友提问怎么去除海量列表里重复元素,用hash来解决也行,只不过感觉在性能上不是很高,用set解决还是很不错的,示例如下:


>>> a = [11,22,33,44,11,22]
>>> b = set(a)
>>> b
set([33, 11, 44, 22])
>>> c = [i for i in b]
>>> c
[33, 11, 44, 22]


很酷把,几行就可以搞定。


1.8 集合 
 
集合用于包含一组无序的对象。要创建集合,可使用set()函数并像下面这样提供一系列的项:


s = set([3,5,9,10])      #创建一个数值集合


t = set("Hello")         #创建一个唯一字符的集合


与列表和元组不同,集合是无序的,也无法通过数字进行索引。此外,集合中的元素不能重复。例如,如果检查前面代码中t集合的值,结果会是:

>>> t


set(['H', 'e', 'l', 'o'])


注意只出现了一个'l'。


集合支持一系列标准操作,包括并集、交集、差集和对称差集,例如:

a = t | s          # t 和 s的并集


b = t & s          # t 和 s的交集


c = t – s          # 求差集(项在t中,但不在s中)


d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)

基本操作:


t.add('x')            # 添加一项


s.update([10,37,42])  # 在s中添加多项


使用remove()可以删除一项:


t.remove('H')

len(s)
set 的长度


x in s
测试 x 是否是 s 的成员


x not in s
测试 x 是否不是 s 的成员


s.issubset(t)
s <= t
测试是否 s 中的每一个元素都在 t 中


s.issuperset(t)
s >= t
测试是否 t 中的每一个元素都在 s 中


s.union(t)
s | t
返回一个新的 set 包含 s 和 t 中的每一个元素


s.intersection(t)
s & t
返回一个新的 set 包含 s 和 t 中的公共元素


s.difference(t)
s - t
返回一个新的 set 包含 s 中有但是 t 中没有的元素


s.symmetric_difference(t)
s ^ t
返回一个新的 set 包含 s 和 t 中不重复的元素


s.copy()
返回 set “s”的一个浅复制


请注意:union(), intersection(), difference() 和 symmetric_difference() 的非运算符(non-operator,就是形如 s.union()这样的)版本将会接受任何 iterable 作为参数。相反,它们的运算符版本(operator based counterparts)要求参数必须是 sets。这样可以避免潜在的错误,如:为了更可读而使用 set('abc') & 'cbs' 来替代 set('abc').intersection('cbs')。从 2.3.1 版本中做的更改:以前所有参数都必须是 sets。


另外,Set 和 ImmutableSet 两者都支持 set 与 set 之间的比较。两个 sets 在也只有在这种情况下是相等的:每一个 set 中的元素都是另一个中的元素(二者互为subset)。一个 set 比另一个 set 小,只有在第一个 set 是第二个 set 的 subset 时(是一个 subset,但是并不相等)。一个 set 比另一个 set 打,只有在第一个 set 是第二个 set 的 superset 时(是一个 superset,但是并不相等)。


子 set 和相等比较并不产生完整的排序功能。例如:任意两个 sets 都不相等也不互为子 set,因此以下的运算都会返回 False:a<b, a==b, 或者a>b。因此,sets 不提供 __cmp__ 方法。


因为 sets 只定义了部分排序功能(subset 关系),list.sort() 方法的输出对于 sets 的列表没有定义。




运算符
   运算结果


hash(s)
   返回 s 的 hash 值




下面这个表列出了对于 Set 可用二对于 ImmutableSet 不可用的运算:


运算符(voperator)
等价于
运算结果


s.update(t)
s |= t
返回增加了 set “t”中元素后的 set “s”


s.intersection_update(t)
s &= t
返回只保留含有 set “t”中元素的 set “s”


s.difference_update(t)
s -= t
返回删除了 set “t”中含有的元素后的 set “s”


s.symmetric_difference_update(t)
s ^= t
返回含有 set “t”或者 set “s”中有而不是两者都有的元素的 set “s”


s.add(x)


向 set “s”中增加元素 x


s.remove(x)


从 set “s”中删除元素 x, 如果不存在则引发 KeyError


s.discard(x)


如果在 set “s”中存在元素 x, 则删除


s.pop()


删除并且返回 set “s”中的一个不确定的元素, 如果为空则引发 KeyError


s.clear()


删除 set “s”中的所有元素




请注意:非运算符版本的 update(), intersection_update(), difference_update()和symmetric_difference_update()将会接受任意 iterable 作为参数。从 2.3.1 版本做的更改:以前所有参数都必须是 sets。


还请注意:这个模块还包含一个 union_update() 方法,它是 update() 方法的一个别名。包含这个方法是为了向后兼容。程序员们应该多使用 update() 方法,因为这个方法也被内置的 set() 和 frozenset() 类型支持。

 


原文地址:http://blog.youkuaiyun.com/business122/article/details/7541486

 
VSCODE编辑+EIDE插件调试+STM8_Debug插件调试+IAR_STM8工具链编译开发项目 1. 安装 在VS CODE安装EIDE、STM8-Debug插件 2. 使用 EIDE 创建一个 8/16 Bit MCU 项目 新建虚拟文件夹,把工程外部的文件添加进虚拟文件夹,实现工程和源文件之间的关系,而不用实际把源文件复制到工程目录下。 EIDE工程和源文件实现分开放置,EIDE(EIDE工程)、EWSTM8(IAR STM8工程)、Project(ST Visual Develop工程) 选择工具链 烧录工具选择 头文件包含目录 添加宏定义 3. 编译 4. 使用STM8 阅读详情

相关推荐

静止无功补偿SVG的基本控制原理

上图是自励单变量控制框图,基本控制方式为,采集计算得到负载无功电流和SVG输出的无功电流的差值,经过PI调节作为功率角δ和固定的调制深度λ和调制波,经过PWM调制形成开关信号驱动SVG的功率电路。该控制方式使保持调制深度λ(即SVG电压的幅度)不变,通过调整δ来调整直流电压和无功,跟踪输出无功功率,直流电压就会大幅度随动,无功相应速度较慢。SVG通常有他励方式和自励方式,他励方式需要提供外部的直流电源,自励方式通过电网输出有功功率至SVG建立SVG的直流电压。δ为Us和Uc之间的相角差。

weixin_42668920的博客 1989

Python Set 集合交集 intersection | 初学者的终极指南【翻译】

在上周的文章中,你已经了解了 Python set difference() 的全部内容。现在我们将探索另一个常用的 set(集合)函数。Python 集合交集允许在两个或多个集合之间查找公共元素。它有很多有用的应用,例如在求职者数据之间寻找相同技能。 今天你将学习关于 Python set intersection 的所有知识,读完这篇文章后,你就可以自信地使用它了。 这里原作者放了一个录制的讲解视频,由于是 youtube 的,有条件的同学可以自行观看。 https://www.youtube.com/

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 2万+

告别代码丢失!用Git+Gitee管理你的Keil5单片机项目(保姆级图文教程)

本文详细介绍了如何利用Git和Gitee高效管理Keil5单片机项目,解决嵌入式开发中的代码丢失问题。通过精准配置.gitignore文件、设计适合团队的协作流程以及搭建安全备份体系,开发者可以轻松实现版本控制,提升工作效率。特别针对Keil工程的特殊文件类型,提供了实用的过滤规则和操作技巧。

weixin_33686714的博客 470

python集合set用法详解(创建、增加、删除、复制、查找、合并、判断、差集、交集、对称差集)

python集合set用法详解(创建、add()、update()、remove()、discard()、pop())、clear()、in、not in、union()、issubset()、isdisjoint()、issuperset()、copy、difference()、difference_update()、intersection()、intersection_update()、symmetric_difference()、symmetric_difference_update())...

IT之一小佬的博客 2万+

手把手教你用RoboTwin训练RDT模型:从环境配置到实战微调(避坑指南)

本文提供了一份详尽的避坑指南,手把手教你如何在RoboTwin开源仿真环境中,从零开始配置环境、采集数据并完成RDT视觉语言动作模型的实战微调。文章涵盖了环境搭建、数据流水线构建、模型配置与训练等关键步骤,旨在帮助研究者和开发者高效利用仿真数据,低成本探索具身智能应用。

weixin_29094979的博客 132

uni-app一键登录实战:从云函数配置到前端调用的完整指南

本文详细介绍了uni-app中一键登录功能的实现方法,从DCloud控制台配置到云函数开发,再到前端调用全流程。通过一键登录,用户无需输入账号密码即可快速使用本机手机号登录,显著提升用户体验和登录转化率。文章还提供了常见问题排查和安全合规要点,帮助开发者高效完成集成。

weixin_29291573的博客 445

python取两个set的并集、交集、差集

对于以下两个```set``` ```py x = set([1,2,3]) y = set([2,3,4]) ``` # 1. 并集 方法一: ```py x | y ``` 方法二: ```py x.union(y) ``` # 2. 交集 方法一: ```py x & y ``` 方法二: ```py x.intersection(y) ``` # 3. 差集 方法一: ```py x - y ``` 方法二: ```py x.difference(y) ```

呆萌的代Ma 1万+

《ESP32单片机基础入门》第2章:开发环境搭建

【代码】《ESP32单片机基础入门》第2章:开发环境搭建。

2301_79143213的博客 581

Python set()函数求交集,并集,差集

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。 import pandas as pd import numpy as np import random li_1=[1,2,3] li_2=[4,5,6,7,1,2,3,5,5,7,7] li_3=[1,2,3] #交集 set(li_1)&set(li_2) {1, 2, 3} #并集 set(li_1)|set(li_3) {1, 2, 3} #差集 set(li_2)-set.

爱吃干脆面的小潘 1万+

NXP(恩智浦)—TJA1043TK CAN收发器芯片详解

本文章主要讲解NXP(恩智浦)—TJA1043TK CAN收发器的相关知识。

零零刷的博客 2201

lammps教程:聚合物压缩,避免“bond atoms missing”

如果使用ms建模,聚合物的链会伸出到盒子外面,在导出data文件后,盒子外面的原子被周期性算法折叠进盒子对面,这就造成了边界附近的bond原子可能被分布到了盒子的两侧。并且,这个data文件不能使用npt系综进行压缩,npt系综必须使用周期性边界,在压缩时,bond原子同样会移动到对面的边界。所以,最好的解决办法是使用一个反射墙墙进行压缩,设置一个反射墙墙既可以实现压缩效果,也可以组织原子跨越box边界移动到对面。解决这个问题的原则只有一个:导出data时确保所有的bond原子没有跨越边界。

lammps_jiayou的博客 3819

Python 多个Set中的交集:深入理解与高效实现

Python 多个Set中的交集:深入理解与高效实现在Python中,集合(Set)是一种无序的、不包含重复元素的数据结构。它提供了多种有用的操作,如并集、交集、差集和对称差集等,这些操作在数据处理、算法实现及数学分析中有着广泛的应用。当我们需要找出多个集合中共同拥有的元素时,即求它们的交集,Python提供了灵活且高效的...

cnzzs的博客 577

基于 STM32 单片机的实验室多参数安全监测系统设计与实现

本系统以 STM32F103C8T6 单片机为核心,集成温湿度监测、烟雾检测、气体泄漏报警、人体移动监测等功能模块,通过 OLED 显示屏实时显示数据,并支持 Wi-Fi 远程传输。系统可对实验室异常环境参数(如高温、烟雾、燃气泄漏)及非法入侵实时报警,保障实验室安全。本文从硬件选型、电路设计到软件实现提供了完整的实验室安全监测系统方案,可根据实际需求调整传感器类型和通信方式,适用于科研、教学等场景的环境安全防护。:可增加继电器模块控制通风设备或切断电源,集成 ZigBee 组网实现多实验室联动监测。

weixin_42300449的博客 1285

Python学习记录7——集合set()的使用指南

本文记录集合的所有方法,通过代码示例帮助自己,也帮助读者查询学习这一重要数据结构。在Python中,集合(set)是一种。

weixin_51418895的博客 1817

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

零基础入门学习Python(14):集合set()

零基础入门学习Python(14):集合set()集合里面所有元素都是唯一的,而且,集合是无序的,不支持索引 创建集合有两种方式: 1)直接把一堆元素用花括号括起来 2)使用工厂函数set()>>> num = {} #直接使用空的花括号创建的是一个字典类型的对象 >>> type(num) <class 'dict'> >>> num1 = {1

qq_33256568的博客 590

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

python 学习笔记——set() class 集合类型

python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素.  集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算. 注意点: 1、set类型是无序的 2、set类型里面的元素是非重复的,即使在创建的时候的对象有重复元素,在创建se

thao6626的专栏 1666

Python学习笔记3:数据结构:集合set()

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。&gt;&gt;&gt;x = set('runoob') &gt;&gt;&gt; y = set('google') &gt;&gt;&gt; x, y (set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l'])) # 重复的被删除...

Softdiamonds的博客 278

Python数据类型——集合

4. >>>5. >>> s2 = set ( ‘helloworld’ ) # 使用 set() ,接收一个字符串8. >>>>>> s3 = set ([ ‘.mp3’ , ‘.mp4’ , ‘.rmvb’ , ‘.mkv’ , ‘.mp3’ ]) # 使用 set() ,接收一个列表。

m0_60635321的博客 616

python3基本语法总结_python3中set(集合)的语法总结分享

介绍set 顾明思义,就是个集合,集合的元素是唯一的,无序的。一个{ }里面放一些元素就构成了一个集合,set里面可以是多种数据类型(但不能是列表,集合,字典,可以是元组)集 合 是 一 个 无 序 不 重 复 元素 的 集 。 基 本 功 能 包 括 关 系 测 试 和 消 除 重 复 元 素 。 集 合 对 象 还 支 持 union( 联合),intersection(交),differen...

weixin_39575775的博客 107

python如何输入集合_python输入一个集合的方法

python输入一个集合的方法发布时间:2020-09-22 13:54:58来源:亿速云阅读:87作者:小新这篇文章主要介绍了python输入一个集合的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。set()函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。set 语法:class set(...

weixin_34544513的博客 6401

chatgpt赋能python:Python学习:如何建立一个空集合?

上述示例中,首先定义了一个名为my_set的变量,然后使用set()函数将其定义为空集合。set()本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的。

a058046的博客 739

Python3实战三 集合(Set)

字典(Dictionary)在Python中是一种可变的容器模型,它是通过一组键(key)值(value)对组成,这种结构类型通常也被称为映射。 d = {'name': '腾讯QQ', 'ver':'20.2', 'date':'2019-9-16'} #新建字典方式1 d0 = dict(name = '腾讯QQ',ver = '20.2',date = '2019-9-16')##新建字典方...

weixin_37357465的博客 319

python set类型和set()函数作用、用法等集合,让你学会用set

Python set的类型、set()函数的作用、用法等知识点的收集整理,Python set是什么意思,看完本文的文章集合基本就会使用Python set了。

u011367482的博客 1万+

python中集合的长度_Python 集合(Set)

版权所有,未经许可,禁止转载集合集合是无序、无索引的数据集。在Python中,集合用花括号包裹。示例创建集合:thisset = {"自行车", "汽车", "高铁"}print(thisset)注意: 集合是无序的,因此项目将以随机顺序出现。访问集合项目不能通过索引来访问集合项,因为集合是无序的,这些项没有索引。但是您可以使用for循环遍历集合项,使用in关键字查询集合中是否存在指定值。示例遍历...

weixin_39833270的博客 9007

python创建集合set()_Python 集合set

可变集合set集合set是Python中一种基本数据类型,它分为可变集合(set)和不可变集合(frozenset)两种。类似于其他语言,集合是一个无序不重复元素集,包括创建集合set、向集合中添加元素、删除集合中的元素、求集合的交集、并集、差集等操作。下面就让我们一一来学习集合的这些知识吧。1、set创建集合set集合类需要的参数必须是迭代器类型的,如:序列、字典等,然后转换成无序不重复的元素集...

weixin_29491635的博客 3405

Python中的set集合

Python set集合最常用的操作是向集合中添加、删除元素,以及集合之间做交集、并集、差集等运算。

m0_75067840的博客 1065

python 中集合set()常用操作

python中的集合和数学上的集合基本是没有区别的,元素无序且不重复,不可以使用索引访问。 方式2:使用 set(),也可以创建空集合 方式3:将列表转换为集合 方式4:使用生成列生成列表 方式2:通过 update() 方法为集合添加多个元素,对应于列表的extend() 2.2 删除元素 方式1:通过 discard() 方法删除指定元素(集合中没有也不会报错) 方式2:通过 remove() 方法删除指定元素(集合

m0_46483236的博客 4627
上一篇: 聚类算法实践经验汇总
下一篇: 普利策奖《哥德尔、埃舍尔、巴赫——集异璧之大成》
resourse_sharing
博客等级 码龄18年 54粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值