set 是python中一种不常用,但某些场景下很有用的数据类型

1.set的创建

python中集合有两种方式创建,一种是利用大括号{set...}的形式,另一种是利用set()函数形式。

set1 = {1,2,3,4,5}
print('set1 is ',type(set1))
set2 = {1,'string'}
print('set2 is ',type(set2))#use set()
set3 = set('strinnnnng')
set4 = set(['string1','string2','string3'])print(set3)
print(set4)"""
>>>
set1 is  <class 'set'>
set2 is  <class 'set'>
{'g', 'n', 's', 'i', 'r', 't'}     #无序,n不重复
{'string2', 'string1', 'string3'}  #set(函数只能包含单一的一整个元素,可放入一个list,将其中每个字符串元素作为集合元素
"""

从上面的结果可以看到,set具有无序、元素不重复等特点。(集合的每一个元素是不可变元素,如整数,字符串、元组)

2.set的操作

seta = set('abcdefg')
setb = {'abc'}print(seta)#增加元素
seta.add('w')
print(seta)#随机删除元素
seta.pop()
print(seta)#删除指定元素
setb.add('c')
print(setb)
setb.remove('c')
print(setb)
#方法二
setb.discard('a')  #不存在不报错
print(setb)"""
>>>
{'e', 'd', 'a', 'g', 'b', 'f', 'c'}
{'e', 'd', 'a', 'g', 'b', 'f', 'c', 'w'}  #w新增了
{'d', 'a', 'g', 'b', 'f', 'c', 'w'}       #随机pip了d
{'c', 'abc'}                              #setb新增c
{'abc'}                                   #删除了c
{'abc'}                                   #没有a,discard()也不报错
"""

3.集合运算

seta = set('abcdefghijk')
setb = set('abcd')
setc = set('lmnopqrst')#子集
print(setb<seta)   #小于号表示是否是子集,成立则为true
print(setc<seta)
"""
>>>
True
False
"""#交集
print(seta & setb)    #利用&操作
print(seta.intersection(setb))   #利用集合内置函数intersection()
"""
>>>
{'d', 'a', 'c', 'b'}
{'d', 'a', 'c', 'b'}
"""#并集
print(seta | setc)    #利用 | 操作得到并集
print(seta.union(setc))  #利用内置函数union()
"""
>>>
{'q', 'r', 'p', 'f', 's', 'm', 't', 'e', 'c', 'i', 'd', 'l', 'a', 'b', 'n', 'k', 'g', 'h', 'j', 'o'}
{'q', 'r', 'p', 'f', 's', 'm', 't', 'e', 'c', 'i', 'd', 'l', 'a', 'b', 'n', 'k', 'g', 'h', 'j', 'o'}
"""#差集
print(seta - setb)
print(seta.difference(setb))
"""
>>>
{'f', 'e', 'j', 'g', 'h', 'i', 'k'}
{'f', 'e', 'j', 'g', 'h', 'i', 'k'}
"""#对称差,只属于其中一个集合的元素
setd = set('abxyz')
print(setb ^ setd)    #利用 ^ 操作得到,类似于异或操作
print(setb.symmetric_difference(setd))  #利用内置函数symmetric_difference()
"""
>>>
{'c', 'x', 'd', 'y', 'z'}    #共有的ab被剔除
{'c', 'x', 'd', 'y', 'z'}    #cd只在setb中,xyz只在setd中存在
"""

ref:
https://www.jdoodle.com/python3-programming-online
http://www.cnblogs.com/suendanny/p/8597596.html
http://www.iplaypy.com/jichu/set.html
http://www.runoob.com/python3/python3-set.html



pic from pexels.com

【python】set集合基础与使用相关推荐

  1. Python 3 集合基础和概念!

    Python 3 集合基础和概念! Python 3中,集合是无序的,所以不能进行切片和索引操作. 创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的:frozenset()方法创建的集 ...

  2. Python frozenset 集合 - Python零基础入门教程

    目录 一.Python frozenset 集合语法 二.Python frozenset 集合使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> P ...

  3. Python set集合 - Python零基础入门教程

    目录 一.set 集合简介 二.set 集合常用函数 三.set 集合运算符 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 在 ...

  4. python快乐编程—基础入门-从萌新到大神必读书籍 《Python快乐编程基础入门》...

    2019年,全球信息化进程持续加快,IT行业繁荣发展.作为新时代IT人,不仅需要强大的理论知识,更需要过硬的技术.Python作为最受欢迎的编程语言之一,作为人工智能时代的首选语言,因其受众多.用途广 ...

  5. python从零基础到项目实战怎么样-2018完整Python零基础到项目精通的学习书籍

    Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏.Python编程语言的流行直线上升,如何学习好Py ...

  6. python编程语法大全-Python编程入门——基础语法详解

    今天小编给大家带来Python编程入门--基础语法详解. 关于怎么快速学python,可以加下小编的python学习群:611+530+101,不管你是小白还是大牛,小编我都欢迎,不定期分享干货 每天 ...

  7. python编程语法-Python编程入门——基础语法详解

    今天小编给大家带来Python编程入门--基础语法详解. 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_num ...

  8. python编程if语法-Python编程入门基础语法详解经典

    原标题:Python编程入门基础语法详解经典 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_number = ...

  9. python编程语法-Python编程入门——基础语法详解(经典)

    今天小编给大家带来Python编程入门--基础语法详解.温馨提示: 亮点在最后! 在这里还是要推荐下我自己建的Python开发学习群:301056051,群里都是学Python开发的,如果你正在学习P ...

最新文章

  1. 多重采样和超级采样哪个流畅_OpenGL多重采样:结果与未使用多重采样时的结果相同...
  2. Oracle中的rownum和rowid
  3. 行波和驻波动画演示gif_新技能get√ | 语文课上的笔顺动画可以这么做
  4. 服务器堡垒机登录方式
  5. SAR 和光学图像配准研究
  6. android ifw 启动广告,使用 IFW 完全控制 Android 应用行为 | 实用技巧
  7. 缓存雪崩,缓存穿透,缓存预热,缓存热备都是什么鬼?
  8. docker 拉取oracle_Docker 拉取 oracle 11g镜像配置-Go语言中文社区
  9. 为什么 ++[[]][+[]]+[+[]] = 10 ?
  10. 文档浏览网站 Docs4dev,内含Spring、SpringBoot、Spring Data等中英文文档
  11. Grunt安装与入门
  12. 怎样选择mysql的版本升级_mysql版本升级
  13. 数据结构与算法 第二章习题课
  14. 隐藏微信右上角的分享按钮
  15. CAD绘制填充,从中间挖去一块(网页版)
  16. 如何去除Mac截图的窗口阴影
  17. 数学推导+纯Python实现机器学习算法22:EM算法
  18. HTML+CSS+Javascript简易记账本(localStorage)
  19. 火狐浏览器打不开,但是进程中有,怎么办?
  20. win10一行命令查看所有wifi密码

热门文章

  1. unix入门经典_程序员大神们的经典编程语录
  2. 视频擦除方向研究(生成技术的一类)
  3. Squeeze-and-Excitation Networks(SENet )
  4. 1.x和2.x的区别
  5. 几种常见的长度单位整理
  6. [Unity][FlowCanvas] FlowScript 实现切换当前 CineMachine 摄像机
  7. [有限元] 四结点三角形单元和五结点三角形单元的形函数
  8. java yeild_Java 中 Thread.yield() 方法详解
  9. phpcms 后台设置 posid 推荐位(支持多选) - 教程篇
  10. wampserver的phpmyadmin(默认3306)端口如何更改为3307?