博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python基础之集合set
阅读量:5751 次
发布时间:2019-06-18

本文共 1826 字,大约阅读时间需要 6 分钟。

集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),

但是集合本身是不可哈希的(所以集合做不了字典的键)的。
以下是集合最重要的两点:
(1)去重,把一个列表变成集合,就自动去重了。
(2)关系测试,测试两组数据之间的交集,差集,并集等关系。

1. 集合的创建

set1 = set({1, 2, "barry"})set2 = {1, 2, "barry"}print(set1, set2)

执行结果为:

{'barry', 1, 2} {'barry', 1, 2}

2. 集合的增

2.1 add()

set1 = {"a", "b", "c"}set1.add("d")print(set1)

执行结果为:

{'b', 'a', 'd', 'c'}

2.1 update()

update():迭代着增加

set1 = {"a", "b", "c"}set1.update("A")print(set1)set1.update("B")print(set1)set1.update([1, 2, 3])print(set1)

执行结果为:

{'c', 'b', 'A', 'a'}{'A', 'a', 'B', 'c', 'b'}{1, 2, 3, 'A', 'a', 'B', 'c', 'b'}

3. 集合的删

set1 = {"a", "b", "c", "d", "e"}set1.remove("a")    #删除一个元素print(set1)set1.pop()          #随机删除一个元素print(set1)set1.clear()        #清空集合print(set1)del set1            #删除集合print(set1)

4. 集合的其他操作

4.1 交集(& 或者 intersection)

set1 = {1, 2, 3, 4, 5}set2 = {4, 5, 6, 7, 8}print(set1 & set2)              #{4, 5}print(set1.intersection(set2))  #{4, 5}

4.2 并集(| 或者 union)

set1 = {1, 2, 3, 4, 5}set2 = {4, 5, 6, 7, 8}print(set1 | set2)          #{1, 2, 3, 4, 5, 6, 7, 8}print(set2.union(set1))     #{1, 2, 3, 4, 5, 6, 7, 8}

4.3 差集(- 或者 differene)

set1 = {1, 2, 3, 4, 5}set2 = {4, 5, 6, 7, 8}print(set1 - set2)              #{1, 2, 3}print(set1.difference(set2))    #{1, 2, 3}

4.4 反交集(^ 或者 symmetric_difference)

set1 = {1, 2, 3, 4, 5}set2 = {4, 5, 6, 7, 8}print(set1 ^ set2)                      #{1, 2, 3, 6, 7, 8}print(set1.symmetric_difference(set2))  #{1, 2, 3, 6, 7, 8}

4.5 子集与超集

set1 = {1, 2, 3}set2 = {1, 2, 3, 4, 5, 6}print(set1 < set2)          #Trueprint(set1.issubset(set2))  #True#这两个相同,都是说明set1是set2子集print(set2 > set1)          #Trueprint(set2.issuperset(set1))#True#这两个相同,都是说明set2是set1超集

5. frozenset不可变集合,让集合变成不可变类型

s = frozenset("barry")print(s, type(s))

执行结果为:

frozenset({'b', 'a', 'r', 'y'}) 

转载于:https://www.cnblogs.com/yang-wei/p/9630535.html

你可能感兴趣的文章
在centos7下用http搭建配置svn服务
查看>>
Android组件化最佳实践 ARetrofit原理
查看>>
舍弃浮躁, 50条重要的C++学习建议
查看>>
同步手绘板——将View的内容映射成Bitmap转图片导出
查看>>
虚拟机安装OS_X_Lion 反复注册问题
查看>>
容器模式
查看>>
【Android游戏开发之十】(优化处理)详细剖析Android Traceview 效率检视工具!分析程序运行速度!并讲解两种创建SDcard方式!...
查看>>
微信小程序之wx.navigateback往回携带参数
查看>>
陌陌和请吃饭之类的应用,你要是能玩转,那就厉害了
查看>>
递归的运行机制简单理解
查看>>
汉字转阿斯克马值
查看>>
Java 栈与堆简介
查看>>
【supervisord】部署单进程服务的利器
查看>>
zabbix oracle监控插件orabbix部署安装
查看>>
python3 通过qq 服务器 发送邮件
查看>>
java 多线程踩过的坑
查看>>
性能优化
查看>>
ggplot2 geom相关设置—点重合处理(jitter)
查看>>
部署Replica Sets及查看相关配置
查看>>
倒序显示数组(从右往左)
查看>>