概述
作为新手自学Python的第七天,技术低微,希望可以通过这种方式督促自己学习。
个人学习环境:python3.9,PyCharm 2021.3.2 (Community Edition)
———————————————————————————————————————————
集合是Python语言提供的内置数据结构,与列表、字典一样都是可变类型的序列
集合是没有value的字典
1、集合的创建
第一种:使用'{ }'
sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu', 'Baidu'}
# 输出集合,重复的元素被自动去掉
print(sites)
"""
结果为:
{'Baidu', 'Runoob', 'Google', 'Facebook', 'Taobao', 'Zhihu'}
"""
输出结果为乱序说明集合具有无序性
集合中的元素不允许重复
第二种:使用内置函数set()
s1 = set(range(6))
print(s1, type(s1))
"""
结果为:
{0, 1, 2, 3, 4, 5} <class 'set'>
"""
使用set()可以将数组、元组、列表、字符串、集合等转为集合
s2 = set('Python')
print(s2)
"""
结果为:
{'n', 'o', 'P', 'y', 't', 'h'} <class 'set'>
"""
# 定义一个空集合
s3 = set() # 如果使用'{}'直接定义的话,数据类型是字典类型
2、集合的相关操作
2.1 集合元素的判断操作
in 或 not in
2.2 集合元素的新增操作
第一种:使用add()方法,添加单个元素
第二种:使用update()方法,添加多个元素
s = {10, 20, 30, 400, 500}
s.add(80)
print(s)
"""
结果为:
{400, 80, 20, 500, 10, 30}
"""
s.update({200, 300, 600})
print(s)
"""
结果为:
{200, 10, 300, 400, 80, 20, 500, 600, 30}
"""
update()中可以新添的元素类型有集合、列表、元组,不过列表、元组只是将其中的元素添加至集合,不是添加列表、元组
2.3 集合的删除操作
第一种:使用remove()方法,删除一个指定元素
第二种:使用discard()方法,删除一个指定元素,若元素不存在不报错
第三种:使用pop()方法,删除一个任意元素,不能指定元素
第四种:使用clear()方法,清空集合
3、集合间的关系
3.1 两个集合是否相等(元素相同,就相等)
可以使用运算符 == 或者 != 行判断
3.2 一个集合是否是另一个集合的子集
可以调用方法issubset进行判断
s1 = {10, 20, 30, 40, 50, 60}
s2 = {10, 20, 30, 40}
s3 = {10, 20, 90}
print(s2.issubset(s1))
print(s3.issubset(s1))
"""
结果为:
True
False
"""
3.3 一个集合是否是另一个集合的超集
可以调用方法issuperset进行判断
print(s1.issuperset(s2))
print(s1.issuperset(s3))
"""
结果为:
True
False
"""
3.4 两个集合是否没有交集
可以调用方法isdisjoint进行判断
print(s2.isdisjoint(s3))
s4 = {100, 200, 300}
print(s2.isdisjoint(s4))
"""
结果为:
False 有交集为False
True 没有交集为True
"""
4、集合的数学操作
# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')
print(a)
# a 和 b 的差集
print('差集为:') # difference() 与 - 等价
print(a.difference(b))
print(a - b)
# a 和 b 的并集
print('并集为:') # union() 与 | 等价
print(a.union(b))
print(a | b)
# a 和 b 的交集
print('交集为:') # intersection() 与 & 等价
print(a.intersection(b))
print(a & b)
# a 和 b 中不同时存在的元素
print('对称差集:') # symmetric_difference() 与 ^ 等价
print(a.symmetric_difference(b))
print(a ^ b)
"""
结果为:
{'a', 'r', 'c', 'b', 'd'}
差集为:
{'r', 'b', 'd'}
{'r', 'b', 'd'}
并集为:
{'m', 'a', 'l', 'r', 'c', 'b', 'z', 'd'}
{'m', 'a', 'l', 'r', 'c', 'b', 'z', 'd'}
交集为:
{'a', 'c'}
{'a', 'c'}
对称差集:
{'m', 'z', 'b', 'l', 'r', 'd'}
{'m', 'z', 'b', 'l', 'r', 'd'}
"""
5、集合生成式
用于生成集合的公式
{ i * i for i in range(1,10) }
注意:将 { } 修改为 [ ] 就是列表生成式,没有元组生成式
lst = [i*i for i in range(10)]
print(lst)
a = {i*i for i in range(10)}
print(a)
"""
结果为:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
{0, 1, 64, 4, 36, 9, 16, 49, 81, 25}
"""
最后
以上就是笑点低八宝粥为你收集整理的Python自学第七天——集合的全部内容,希望文章能够帮你解决Python自学第七天——集合所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复