Python集合章

集合

集合是一个无序的不重复元素序列

用大括号 {} 或者 set() 函数创建集合

注意:创建一个空集合必须是 set() 而不是通过 {} 因为这个是创建字典的。

集合不能通过索引来查找,只能判断是否存在此集合中 is,set存储的元素必须是不可变对象,任何可变对象都不能放入set中的。

定义:

s = set() 定义一个空集合

s = {value1, value2, valueN,...} 创建有值的集合

s = set([列表,元组,字典]) 强转为集合类型,字典转后只留”键“

# 创建空集合方式一
>>> set = set()
>>> type(set)
<class 'set'>
>>> set.add("1")
>>> print(set)
{'1'}
----------------------------
# 创建集合方式二,大括号内必须有值,不然为字典类型
>>> set = {1,2,3,4,5}
>>> type(set)
<class 'set'>
----------------------------
# 创建集合方式三,用set()把元组、列表强转为集合
>>> s = set((1,2))
>>> s
{1,2}

  • set.add(value) 用于添加元素至集合中,由于是无序的,所以插入的位置可能会发生变化
  • set.update([list, tuple, dict]) 添加元素,参数可以是列表和元祖、字典
set = {1, 2, 3, 4, 5}
set.add("林青霞")
>>> print(set)
>>> {1, 2, 3, 4, 5, "林青霞"}
set.add("6")
>>> print(set)
>>> {1, 2, 3, 4, 5, "6" , "林青霞"}
-----------------------
set.update(('a','b'))
>>> print(set)
>>> {1, 2, 3, 4, 5, "6", 'a' , "林青霞", 'b'}
  • set.remove( x ) :将内容为x的元素从集合中删除,如果元素不存在报错
  • set.discard( x ):若集合中存在x则删除x,不存在不做操作,都会返回None
  • set.pop():随机删除集合中的元素
  • set.clear():清空集合
>>> set = {1,2,3,4,5,6}
>>> print(set)
{1, 2, 3, 4, 5, 6}
>>> set.remove(3)	# 删除内容是3的元素
>>> print(set)
{1, 2, 4, 5, 6}
>>> set.remove('a')	# 若元素不存在时
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'a'
--------------------------
>>> set.discard('a')	# 不存在,但不会报错
>>> print(set)
{1, 2, 4, 5, 6}
>>> set.discard(4)
>>> print(set)
{1, 2, 5, 6}
---------------------	# pop随机删除
>>> set = {1,23,4,32,46,43,634,6,}
>>> type(set)
<class 'set'>
>>> set.pop()
32
>>> set.pop()
1
>>> set.pop()
4
>>> set.clear()	# 清空集合
>>> print(set)
set()
集合内置函数
  • len():计算集合的长度
  • set.intersection(set):返回两个集合的交集
  • s1.issubset(s2):s1是否为s2的子集
  • union():返回两个集合的并集
>>> set = {1,2,3,4}
>>> len(set)
4
-----------
>>> s1 = set([1,2,3])
>>> s2 = set([3,4,5])
>>> s1.intersection(s2)#交集
{3}
>>> s1.issubset(s2)#子集
False
>>> {3,4}.issubset(s2)
True
>>>
遍历集合
>>> set = {1,2,3,4}
>>> len(set)
4
>>> for i in set:
...     print(i)
...
1
2
3
4
交集和并集
>>> s = set("abc")
>>> s2 = set("cdf")
>>> s - s2	# 集合1中有,而集合2没有
{'a', 'b'}
-------------------
>>> s & s2	# 交集,集合1和集合2相同的
{'c'}
-----------------
>>> s | s2	# 并集,集合1和集合2所有的
{'c', 'b', 'a', 'f', 'd'}
------------------
>>> s ^ s2	#集合1独有,集合2独有的
{'d', 'f', 'a', 'b'}
集合转换
  1. 字典转换为集合
>>> s = set()
>>> type(s)
<class 'set'>
>>> dict = {"a":'1'}
>>> s = set(dict)	# 字典转换为集合
>>> print(s)
{'1','a'}
  1. 列表转化为集合
>>> s = set()
>>> type(s)
<class 'set'>
>>> list = [1,2,3]	# 创建列表
>>> s = set(list)	# 列表转换为集合
>>> print(s)
{1, 2, 3}
  1. 元祖转换为集合
>>> s = set()
>>> type(s)
<class 'set'>
>>> tup = (a,b,c)
>>> s = set(tup)
>>> print(s)
{'c', 'a', 'b'}
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、资源1项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值