python 字符串交集_Python序列--集合(set)

集合

集合用于保存不重复元素。

- 集合和列表非常相似

- 不同点:

1.集合中只能存储不可变对象

2.集合中存储的对象是无序(不是按照元素的插入顺序保存)

3.集合中不能出现重复的元素

d345181be8344faec6fa850002f49cf3.png

集合的所有元素都放在一对”{ }” 中,两个相邻的元素之间用”,”分隔。

集合最好的应用就是去掉重复元素,因为集合中的每一个元素都是唯一的。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

集合的创建:

1. 直接使用‘{ }’创建集合。创建set集合可以像列表,元组,字典一样。直接将集合给变量从而实现创建集合。

语法格式: setname = {element 1 , element 2,element 3, ... ,element n}

# setname : 表示集合名称。

# element 1 , element 2,element 3, ... ,element n : 表示集合中的元素,没有个数限制,只要是python支持的数据类型都可以。

*注意:1.在创建集合时,如果输入重复的元素,将自动保存最后一个。

2.由于集合时无序的,所以每次输出时的元素顺序可能都不相同。

示例:

python = {'绮梦','冷伊一','香凝','梓轩'} # 保存选择Python语言的学生姓名

print('选择Python语言的学生有:',python) # 输出选择Python语言的学生姓名

c = {'冷伊一','零语','梓轩','圣博'} # 保存选择C语言的学生姓名

print('选择C语言的学生有:',c) # 输出选择C语言的学生姓名

输出:

选择Python语言的学生有: {'香凝', '梓轩', '冷伊一', '绮梦'}

选择C语言的学生有: {'圣博', '梓轩', '冷伊一', '零语'}

2. 又或者:使用set()函数创建集合,将列表,元组等其他可迭代对象转换为集合。

python = set(['绮梦','冷伊一','香凝','梓轩']) # 保存选择Python语言的学生姓名

print('选择Python语言的学生有:',python) # 输出选择Python语言的学生姓名

c = set(['冷伊一','零语','梓轩','圣博']) # 保存选择C语言的学生姓名

print('选择C语言的学生有:',c) # 输出选择C语言的学生姓名

输出:

选择Python语言的学生有: {'绮梦', '梓轩', '冷伊一', '香凝'}

选择C语言的学生有: {'梓轩', '圣博', '冷伊一', '零语'}

集合的添加和删除

1. 向集合添加元素。使用add()方法实现

语法格式:setname.edd(element)

# setname: 表示要添加元素的集合。

# element:表示要添加的元素内容,只能使用字符串,数字,布尔类型的True或者False及元组等不可变对象。不可使用列表,字典等可变对象。

例:

dictionary = set(('一个','两个'))

dictionary.add('包子')

print(dictionary)

输出:

{'两个', '包子', '一个'}

注意:add()方法只能一次添加一个元素。

2. 从集合中删除元素。使用dal()方法实现

可以使用del命令删除整个集合,也可以使用集合的pop()方法或者remove()方法来删除一个元素,或者使用集合对象的clear()方法清空集合,即删除集合中的所有元素,使其变成一个空的集合。

例:

python = set(['绮梦','冷伊一','香凝','梓轩']) # 保存选择Python语言的学生姓名

python.add('零语') # 添加一个元素

print('选择Python语言的学生有:',python,'') # 输出选择Python语言的学生姓名

c = set(['冷伊一','零语','梓轩','圣博']) # 保存选择C语言的学生姓名

c.remove('零语') # 删除指定元素

print('选择C语言的学生有:',c) # 输出选择C语言的学生姓名

输出:

选择Python语言的学生有: {'梓轩', '冷伊一', '零语', '绮梦', '香凝'}

选择C语言的学生有: {'圣博', '冷伊一', '梓轩'}

注意:使用集合remove()方法时,如果指定的内容不存在,将出现异常。所以在删除指定元素前,最好先判断其是否存在。

要判读指定内容是否存在可以使用 in 关键字实现。

如:

s = {'1','2','3','4','5','6'}

i = input('请输入一个数字:')

if i in s:

print(i,'在集合中')

else:

print(i,'不在集合中')

输出

请输入一个数字:9

9 不在集合中

例:

>>>s = {'apple','orange','apple','pear','banana','orange'}

>>>'origin' in s

>>>True

>>>'peach' in s

>>>False

3. 集合的交集,并集和差集运算

交集运算:使用“&”符号。

并集运算:使用“|”符号。

差集运算:使用“-”符号。

对称差集运算:使用“^”符号。

实例:

python = set(['绮梦','冷伊一','香凝','梓轩']) # 保存选择Python语言的学生姓名

c = set(['冷伊一','零语','梓轩','圣博']) # 保存选择C语言的学生姓名

print('选择Python语言的学生有:',python) # 输出选择Python语言的学生姓名

print('选择C语言的学生有:',c) # 输出选择C语言的学生姓名

print('交集运算:',python & c) # 输出既选择了Python语言又选择C语言的学生姓名

print('并集运算:',python | c) # 输出参与选课的全部学生姓名

print('差集运算:',python - c) # 输出选择了Python语言但没有选择C语言的学生名

输出:

选择Python语言的学生有: {'梓轩', '绮梦', '冷伊一', '香凝'}

选择C语言的学生有: {'零语', '梓轩', '圣博', '冷伊一'}

交集运算: {'梓轩', '冷伊一'}

并集运算: {'梓轩', '圣博', '冷伊一', '绮梦', '零语', '香凝'}

差集运算: {'绮梦', '香凝'}

fc9526e12b50c038ca575521ae319d6a.png

集合内置方法完整列表

add()

为集合添加元素

clear()

移除集合中的所有元素

copy()

拷贝一个集合

difference()

返回多个集合的差集

difference_update()

移除集合中的元素,该元素在指定的集合也存在。

discard()

删除集合中指定的元素

intersection()

返回集合的交集

intersection_update()

返回集合的交集。

isdisjoint()

判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。

issubset()

判断指定集合是否为该方法参数集合的子集。

issuperset()

判断该方法的参数集合是否为指定集合的子集

pop()

随机移除元素

remove()

移除指定元素

symmetric_difference()

返回两个集合中不重复的元素集合。

symmetric_difference_update()

移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。

union()

返回两个集合的并集

update()

给集合添加元素

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

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

相关文章

【Python开发】Python的GUI用法总结

引用模块(tkinter): 1 from tkinter import * 主窗口设置: 1 # 主窗口 2 tk Tk() # 主窗口实例化 3 tk.title("文本处理工具") # 主窗口标题 4 tk.geometry("700x4001001…

JAVA 环境变量配置

JAVA 环境变量配置 1. 安装JDK 2.配置系统变量 新建          JAVA_HOME:D:\Program Files\Java\jdk1.8.0_65 Path添加       %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 新建CLASSPATH  .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 3.完成…

8修改host_正点原子【STM32-F407探索者】第五十九章 USB 鼠标键盘(Host)实验

1)资料下载:点击资料即可下载2)对正点原子Linux感兴趣的同学可以加群讨论:9354467413)关注正点原子公众号,获取最新资料更新上一章我们向大家介绍了如何利用 STM32F4 的 USB HOST 接口来驱动 U 盘,本章,我们 将利用 ST…

CF815C Karen and Supermarket [树形DP]

题目传送门 Karen and Supermarket On the way home, Karen decided to stop by the supermarket to buy some groceries. She needs to buy a lot of goods, but since she is a student her budget is still quite limited. In fact, she can only spend up to b dollars. Th…

6工程文件夹作用_data_dragon数据工程小工具收集

最近在GitHub上创建了一个新工程,收集个人在数据工程工作的小工具集合,命名为data_dragon (数据一条龙)。取这个名字的是希望这些脚本或代码能够复用,端到端地减少临时数据处理的时间。最近因为工作上的一些变化,写作节奏有点被打…

暑假第十七测

题解&#xff1a; 第一题 #include<bits/stdc.h> using namespace std; #define ll long long const int M 1e5 10; ll a[M], b[M], ans; priority_queue <ll, vector<ll> , greater<ll> > Q; int main(){freopen("buy.in","r",…

Nginx搭建flv视频点播服务器

Nginx搭建flv视频点播服务器前一段时间使用Nginx搭建的多媒体服务器只能在缓冲过的时间区域内拖放, 而不能拖放到未缓冲的地方. 这就带来了一个问题: 如果视频限速的速率很小, 那么客户端观看视频时肯定不流畅, 而且用户不能向前拖放, 用户体验很不好. 如果视频限速的速率很大或…

编码拾遗

1 #!/usr/bin/env python32 #-*- coding:utf-8 -*-3 4 Administrator 5 2018/8/16 6 7 8 # fopen("demo","r",encoding"utf8")9 # dataf.read() 10 # print(data) 11 # f.close() 12 13 14 # print("沈哲子") 15 16 s"中国&qu…

mybatis 不生效 参数_Mybatis-日志配置

日志Mybatis 的内置日志工厂提供日志功能&#xff0c;内置日志工厂将日志交给以下其中一种工具作代理&#xff1a;SLF4JApache Commons LoggingLog4j 2Log4jJDK loggingMyBatis 内置日志工厂基于运行时自省机制选择合适的日志工具。它会使用第一个查找得到的工具(按上文列举的顺…

PS通过滤色实现简单的图片拼合

素材如下&#xff1a; 素材一&#xff1a; 雪山 素材二&#xff1a; 月亮 效果&#xff1a; 实现步骤 1、在PS中打开雪山素材一 2、将月亮素材直接拖入雪山所在的图层中 3、锁定置入素材的高宽比&#xff08;点击一下链状按钮&#xff09; 4、调整月亮到合适大小合适位置 5、…

预处理:主成分分析与白化

主成分分析 引言 主成分分析&#xff08;PCA&#xff09;是一种能够极大提升无监督特征学习速度的数据降维算法。更重要的是&#xff0c;理解PCA算法&#xff0c;对实现白化算法有很大的帮助&#xff0c;很多算法都先用白化算法作预处理步骤。 假设你使用图像来训练算法&#x…

swagger 修改dto注解_Web服务开发:Spring集成Swagger,3步自动生成API文档

目录&#xff1a;1&#xff0c;Spring Boot集成Swagger2&#xff0c;Swagger接口文档页面3&#xff0c;常见问题和解决方法在Sping开发REST接口服务时&#xff0c;API文档是不可缺少的一个重要部分。Swagger框架定义了完整的REST接口文档规范&#xff0c;提供了强大的页面测试功…

WPF自定义控件之列表滑动特效 PowerListBox

列表控件是应用程序中常见的控件之一&#xff0c;对其做一些绚丽的视觉特效&#xff0c;可以让软件增色不少。 本人网上看过一个视频&#xff0c;是windows phone 7系统上的一个App的列表滚动效果&#xff0c;效果非常炫 现在在WPF上用ListBox重现此效果 首先我们来分析一下&am…

CnosDB如何确保多步操作的最终一致性?

背景 在时序数据库中&#xff0c;资源的操作是一个复杂且关键的任务。这些操作通常涉及到多个步骤&#xff0c;每个步骤都可能会失败&#xff0c;导致资源处于不一致的状态。例如&#xff0c;一个用户可能想要在CnosDB集群中删除一个租户&#xff0c;这个操作可能需要删除租户…

颈椎前路caspar撑开器_“骨质增生”导致的颈椎病怎么破?

来源&#xff1a;《脊柱外科微创手术精要》作者&#xff1a;中日友好医院 邹海波此文是区别于颈椎间盘软性突出诊治一文&#xff0c;主要针对“骨质增生”导致的颈椎病(Spondylosis)进行介绍。传统的颈椎前路手术主要为颈椎病而设计。一度认为对颈椎病采用前路手术的主要好处在…

Struts2整合Freemarker生成静态页面

2019独角兽企业重金招聘Python工程师标准>>> 这是生成静态页面的预览&#xff1a; 其对应的模板文件&#xff1a; <table style"text-align:center;FONT-SIZE: 11pt; WIDTH: 600px; FONT-FAMILY: 宋体; BORDER-COLLAPSE: collapse" borderColor#3399ff…

快速幂、矩阵快速幂、快速乘法

快速幂 快速幂是我们经常用到的一种算法&#xff0c;快速幂顾名思义就是快速的幂运算。我们在很多题目中都会遇到幂运算&#xff0c;但是在指数很大的时候&#xff0c;我们如果用for或者是pow就会超时&#xff0c;这时候就用到了快速幂。 快速幂的原理就是&#xff0c;当求b^p的…

vue 前端显示图片加token_手摸手,带你用vue撸后台 系列二(登录权限篇)

完整项目地址&#xff1a;vue-element-adminhttps://github.com/PanJiaChen/vue-element-admin前言拖更有点严重&#xff0c;过了半个月才写了第二篇教程。无奈自己是一个业务猿&#xff0c;每天被我司的产品虐的死去活来&#xff0c;之前又病了一下休息了几天&#xff0c;大家…

注释工具_苹果已购丨Notability丨功能强大而简单易用的笔记及PDF注释工具

点击上方“天泽黑科技”右上角“...”点选“设为星标”点击加星★ 贴近你心 ❤今天给大家购买效率类排行第3名的 Notability &#xff01;大家在桌面 App store 登陆我的账号&#xff0c;搜索下载即可&#xff01;荣获 iPad、iPhone 和 Mac 的 Apple「编」爱新 App 殊荣&#x…

第四章 大网高级   NSSA

STUB、完全stub、NSSA、完全nssa实验要求&#xff1a;1、配置IP地址2、配置OSPF多区域3、配置 stub 末梢区域4、配置完全stub末梢区域5、配置 nssa 非纯末梢区域6、配置完全nssa非纯末梢区域7、配置两种协议相互注入重分发8、实现全网互通一、配置OSPF多区域二、配置rip v2三、…