首页 > 其他分享 >十四、集合set(了解)

十四、集合set(了解)

时间:2023-06-19 14:33:24浏览次数:42  
标签:set print set1 set2 set3 集合 十四

十四、集合set(了解)

集合和字典一样都是使用大括号。但集合没有value,相当于只有字典的key。
字符串,列表和元组属于序列,是有序的,但集合是无序的,所以不能通过下标来查询和修改元素。
再总结一下:
整数,字符串,元组是不可变数据类型(整数和字符串改变值的话是在内存里开辟新的空间来存放新值,原内存地
址里的值不变)
列表,字典,集合是=可变数据类型=(在内存地址不变的基础上可以改变值)

集合主要特点:
1. 天生去重(去掉重复值)
2. 可以增,删(准确来说,集合可以增加删除元素,但不能修改元素的值)
3. 可以方便的求交集,并集,补集

1.创建集合

set1={1,2,3,4,5,1,2}
set2={2,3,6,8,8}
print(type(set1))
print(set1) # 打印的结果,没有重复值
print(set2)

2.集合的常见操作

set1={1,4,7,5,9,6}
set2=set([2,4,5,9,8])

# 交集
print(set1.intersection(set2))
print(set1 & set2)
print(set1.isdisjoint(set2)) # 判断两个集合是否有交集,类型为bool(有交集为False,没交集为True)

# 并集
print(set1.union(set2))
print(set1 | set2)

# 差集(补集)
print(set1.difference(set2)) # set1里有,set2里没有
print(set1-set2)
print(set2.difference(set1)) # set2里有,set1里没有
print(set2-set1)

# 对称差集
print(set1.symmetric_difference(set2)) # 我有你没有的 加上 你有我没有的
print(set1^set2)

# 子集
set3=set([4,5])
print(set3.issubset(set1)) # 判断set3是否为set1的子集
print(set1.issuperset(set3)) # 判断set1是否包含set3

# 集合的增加操作
set1.add(88)
print(set1)
set1.update([168,998]) # 添加多个
print(set1)

# 集合的删除操作
set1.remove(88) # 删除一个不存在的元素会报错
print(set1)
set1.discard(666) # 删除一个不存在的元素不会报错,存在则删除
print(set1)

标签:set,print,set1,set2,set3,集合,十四
From: https://www.cnblogs.com/chunjeh/p/17491066.html

相关文章

  • 在APK打包过程中,Assets资源漏编译漏打包的本质
    背景作为Androider,我们平时在Assets资源目录下都放点啥呢,字体、预置数据、图片、配置文件…等等,那大家有没有想过,万一哪天我在Assets目录下新增了一个子目录放了点自己的资源文件,打包之后再解包发现Apk包里没有找到这部分文件,怎么办呢?原理分析我们都知道典型的Android应用......
  • Kotlin版本的WanAndroid项目实战(三):Kotlin的集合
    集合概述学习方法:扫描一遍下述表格中集合相关的有哪些操作,具体使用时再可以详细去查构造集合Kotlin里面添加了可变集合的概念,目前只是一种接口级别的限制,底层实现还是可变的集合,不是线程安全的,还是可以通过Java代码修改内部元素迭代器(1)Iterable接口的继承者(包括Set与......
  • 对select()参数fdset的完整理解
    虽然写了很多代码,但select我就从没有完整理解过,要用时不过copypaste而已。惭愧!今天决定要对select()参数fdset有一个完整理解。Go!先上一段代码(代码1-1),这段代码做的事情是1.创建一个socket来listen请求2.调用select等待新请求、等待已有请求的数据收发状态READY3.当有新连接请求......
  • 安装openvas时候的报错 bash: openvas-setup: command not found
     由于kali官方默认没有安装openvas,但是kali源中有,需要我们使用apt命令手动安装。 错误一kali@kali:~$openvas-setupbash:openvas-setup:commandnotfound错误原因openvas官方在新版本中改名gvm解决方法 因此openvas命令改为gvm。 错误二kali@kali:~$sudogvm-setupER......
  • Scala集合
    集合scala中的集合分为两种,可变集合和不可变集合,不可变集合可以安全的并发的访问!集合的类主要在一下两个包中可变集合包scala.collection.mutable不可变集合包scala.collection.immutable默认的Scala不可变集合,就是指该集合对象不可修改,每次修改就会返回一个......
  • Java集合框架常见面试题
    剖析⾯试最常⻅问题之Java集合框架集合概述Java集合概览从下图可以看出,在Java中除了以Map结尾的类之外,其他类都实现了Collection接⼝。并且,以Map结尾的类都实现了Map接⼝。说说List,Set,Map三者的区别?List(对付顺序的好帮⼿):存储的元素是有序的、可重复的......
  • Delphi 用TDatasetToJSONBridge原生支持DataSet导出Json
    Xalion发现data.DBJson单元,不知什么时候加的,官方帮助中也没有写。procedureTForm18.Button2Click(Sender:TObject);varcV:TDatasetToJSONBridge;jo:Tjsonobject;begincV:=TDatasetToJSONBridge.Create;trycV.Dataset:=mt;jo:=Tjsonobject(cV.Pro......
  • mysql -- 根据变量a的不同值设置变量b(case when + set)
    需求:根据变量 @period_endtime的不同值,设置相对应的@end_type@period_endtime@end_type03311063020930312314 实现:set@i_period='20230331';SET@period_endtime=RIGHT(@i_period,4);SET@end_type=CASE@period_endtime......
  • setContentView(R.layout.activity_);ui->setupUi(this);
    publicclassTutorialPartIIIextendsActivity{@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);//setContentView(R.layout.activity_tutorial_part_iii);//*......
  • unity将安卓streamingAssetsPath文件复制到persistentDataPath
    privatevoidTestCopy(){stringfrom=Application.streamingAssetsPath+"/Test/test.txt";stringto=Application.persistentDataPath+"/Test/";CopyFile(from,to);}publicstaticvoidCopyFile(stringsourcePath,stringdesti......