我是靠谱客的博主 笑点低八宝粥,最近开发中收集的这篇文章主要介绍Python自学第七天——集合,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

作为新手自学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 集合元素的判断操作

        innot 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自学第七天——集合所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部