python详解集合

本文详细介绍了Python集合的创建、元素操作、集合间关系及数据操作。创建集合可以通过花括号或set()函数,集合是无序且不允许重复的。集合操作包括检查元素存在性、添加元素(add()和update())、删除元素(remove()、discard()和pop())以及集合间的相等、子集、超集、交集、并集、差集和对称差集。此外,还展示了通过生成式创建集合的方法。
摘要由CSDN通过智能技术生成

集合是无序和无索引的集合。在 Python 中,集合用花括号编写。没有值只有键。(会计算哈希值存放)

一、创建

        1.直接{ }

s = {12,52,62,41}

        2.使用内置函数set( )

s = set({56,23,85,74,12})

【注】set( )函数只能接收一个参数; 集合不会存在重复元素;输出结果都是无序的;

        3. 空集合

s = set()

【注】只有这一种方法可以创建空集合

二、集合元素的操作

        1.存在指定元素

s1 = {12,52,40,60,85}
print(12 in s1)
print(85 not in s1)

 True

 False

        2.新增

                1.add( )

s1 = {12,52,40,60,85}
s1.add(100)
print(s1)

{12,52,100,85 ,60,40}

 【注】add( )函数只能添加一个元素

                2.update( )函数

s1 = {12,52,40,85}
s1.update([120,69,'python'])
print(s1)

s1.update({800,900,'word'})
print(s1)

s1.update(('hello'))
print(s1)

 {69, 40, 12, 'python', 52, 85, 120}
{800, 900, 69, 40, 12, 'python', 'word', 52, 85, 120}
{800, 'h', 900, 69, 40, 'l', 12, 'python', 'word', 'e', 52, 85, 120, 'o'}

【注】只有添加元素是集合{ }、列表 [ ]时字符串不会被拆开;update( )只能接受一个参数。

        3.删除

                1.remove( )

s1 = {12,52,40,85}
s1.remove(12)
print(s1)

s1.remove(100)
print(s1)

{52,40,85} 

KeyError: 100

【注】删除一个元素,没有找到对应元素时不会抛出kerError 

                2.discard()

s1 = {12,52,40,85}
s1.discard(85)
print(s1)

s1.discard(100)
print(s1)

{40,10,52}

 

【注】 删除一个元素,没有找到对应元素时不会抛出异常

                3.pop( )

s1 = {12,52,40,85}
s1.pop()
print(s1)
s1.pop()
print(s1)

{12,52,85}

{12,85} 

【注】pop( )函数没有参数,随机删除一个元素。

                4.clear( )清空

s1 = {12,52,40,85}
s1.clear()
print(s1)

set() 

三、集合间关系

        1.判断相等

s1 = {12,52,40,85}
s2 = {85,40,52,12}
print(s1 == s2)
print(s1 != s2)

True

False 

【注】只判断元素是否相等与位置没有关系(无序性)

        2.判断子集

s1 = {12,52,40,85}
s2 = {85,12}
print(s2.issubset(s1))

True 

        3.判断超集

        如果集合B是集合A的子集,则A集合是B集合的超集

s1 = {12,52,40,85}
s2 = {85,40}
print(s1.issuperset(s2))

True 

        4.判断交集

        有交集返回False 反之返回True

s1 = {12,52,40,85}
s2 = {85,90,100}
print(s1.isdisjoint(s2))

Flase 

四、数据操作

        1.计算交集

s1 = {12,52,40,85}
s2 = {85,88,60,40}
print(s1.intersect(s2))
print(s1 & s2)
"""两种方法是等价"""

{85,40} 

{85,40}

        2.计算并集

s1 = {12,52,40,85}
s2 = {40,99}
print(s1.union(s2))
print(s1 | s2)

{12,40,99,52,85}

{12,40,99,52,85} 

【注】会去除重复元素 

        3.差集

s1 = {12,52,40,85}
s2 = {85,40,99}
print(s1.difference(s2))
print(s1 - s2)

{52,12,} 

【注】在s1中去除s1与s2 的交集,剩余元素就是s1减s2的集合

        4.对称差集

s1 = {12,52,40,85}
s2 = {85,40,99}
print(s1.symmetric_difference(s2))
print(s1 ^ s2)

{52,12,99}

 {52,12,99}

【注】在s1与s2的并集中去除交集的结果

五、生成式

se = {i*5 for i in range(10)}
print(se)

 {0, 35, 5, 40, 10, 45, 15, 20, 25, 30}

数据结构是否可变是否重复是否有序定义符号
列表(list)可变可重复有序[ ] 
元组(tuple)不可变可重复有序( )
字典(dict)可变

key不可重复

value可重复

无序{ key:value}
集合(set)可变不可重复无序{ }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值