Python基础知识8

Python集合(set)

1.集合(set)是一个无序的不重复元素序列。

2.集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。

创建集合

1.可以使用大括号 { } 创建集合,元素之间用逗号 , 分隔, 或者也可以使用 set() 函数创建集合。

parame = {value01,value02,...}
set(value)

set1 = {1, 2, 3, 4}# 直接使用大括号创建集合
set2 = set([4, 5, 6, 7])# 使用 set()函数从列表创建集合
set3 = set((4, 5, 6, 7))# 使用 set()函数从元组创建集合
#注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
s4=set({10,20,30,40})
print(s4) #{40, 10, 20, 30}
s5=set([100,200,300,100])#可以去除列表中重复的元素,不用管顺序
print(s5)# {200, 100, 300} 集合中的元素是无序的
#集合中可以保存不可变的数据
# s2={"hello",3.14,[10,20,30],{"name":"karen","age":20}}#报错 不能有列表和字典
#可以写入多个相同的数据,但是最后只有保存一个相同的数据
s1={10,20,10}
print(s1) #{10, 20}
#创建空集合
s8={}
print(s8,type(s8))#{} <class 'dict'> 矛盾,是字典

s9=set({})
print(s9,type(s9))#set() <class 'set'>

添加元素

1.将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。

2.s.add( x ) 添加元素到集合

s10={10,20,30}
x=40
# x=[10,20,30]#不可添加列表
s10.add(x)
print(s10)#{40, 10, 20, 30}
s10.add("x")
print(s10)#{40, 10, 20, 'x', 30}
s10.add(10)#与集合的元素重复,就不会添加,也不会报错
print(s10)#{40, 'x', 10, 20, 30}

3.s.update( x ) 添加元素到集合,且参数可以是列表,元组,字典等 ,x 可以有多个,用逗号分开

s11={10,20,30}
s11.update([10,20,30,40])
print(s11)#{40, 10, 20, 30}
s11.update([22,22,333,4222])
print(s11)#{40, 10, 333, 20, 22, 4222, 30}
s11.update([99,88],[22,44])
print(s11)#{99, 40, 10, 44, 333, 20, 22, 88, 4222, 30}

s11.update([99,88],(9898,7878))
print(s11)#{99, 7878, 40, 10, 9898, 44, 333, 20, 22, 88, 4222, 30}

# s11.update(([11,22],[33,44]))#报错 会把元组中的元素列表添加进集合并报错
s11.update([(000,9090),(555,6666),(6767,5656)])
print(s11)#{99, 7878, (0, 9090), 40, 10, 9898, 44, 333, (555, 6666), 20, 22, (6767, 5656), 88, 4222, 30}
s11.update({"name":"karan","age":1111})#将字典的键添加进集合
print(s11)#{99, 7878, (0, 9090), 40, 'age', 10, 9898, 44, 333, (555, 6666), 20, 22, (6767, 5656), 88, 'name', 4222, 30}

移除元素

1.s.remove( x ):将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。

s12={1,2,3,4,5}
s12.remove(5)
# s12.remove(50)#报错 不能移除集合中不存在的元素
print(s12)#{1, 2, 3, 4}

2.s.discard( x ):将元素 x 从集合 s 中移除,如果元素不存在,不会发生错误。

s12={1,2,3,4,5}
s12.discard(4)
s12.discard(40)#不报错 可以移除集合中不存在的元素
print(s12)#{1, 2, 3}

3.s.pop():对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。

x=s12.pop()
print(x)#1 有返回值
print(s12)# {2,3} 

计算集合元素个数、清空集合、判断元素是否在集合中存在

1.len(s):计算集合元素个数

2.s.clear():清空集合

3.x in s 判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。

集合内置方法完整API

add()、update()、len()(详细笔记在前面)

clear()、discard()、pop()、remove()(详细笔记在前面)

copy()

1.copy():拷贝一个集合

s14={1,2,3,4,5}
s=s14.copy()#深拷贝
s.add(999)
print(s,s14)#{1, 2, 3, 4, 5, 999} {1, 2, 3, 4, 5}

difference()、difference_update()

1.difference():返回多个集合的差集

s15={1,2,3,4,5}
s16={3,4,5,6,7}
s17={3,2,9,10}
re=s15.difference(s16)
print(re)#{1, 2}
print(s15)#{1, 2, 3, 4, 5} 不会修改元数据
re=s15.difference(s16,s17)
print(re)#{1}

2.difference_update():移除集合中的元素,该元素在指定的集合也存在。

s15={1,2,3,4,5}
s16={3,4,5,6,7}
s15.difference_update(s16)
print(s15)#{1, 2} 修改原数据

intersection()、intersection_update()

1.intersection():返回集合的交集

s15={1,2,3,4,5}
s16={3,4,5,6,7}
re=s15.intersection(s16)
print(s15)#{1, 2, 3, 4, 5}
print(re)#{3, 4, 5}

2.intersection_update():返回集合的交集。

s15={1,2,3,4,5}
s16={3,4,5,6,7}
re=s15.intersection_update(s16)#会操作原来的15集合,保留阴影部分(交集)
print(s15)#{3, 4, 5}
print(re)#None

isdisjoint()、issubset()、issuperset()

1.isdisjoint():判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。

s15={1,2,3,4,5}
s16={3,4,5,6,7}
re=s15.isdisjoint(s16)
print(re)#False

2.issubset():判断指定集合是否为该方法参数集合的子集。

s15={1,2,3,4}
s16={1,2,3,4,5,6}
re=s15.issubset(s16)
print(re)#True

s15={1,2,3,4,0}
s16={1,2,3,4,5,6}
re=s15.issubset(s16)
print(re)#False

s15=set({})
s16={1,2,3,4,5,6}
re=s15.issubset(s16)
print(re)#True

s15=set({})
s16=set({})
re=s15.issubset(s16)
print(re)#True

3.issuperset():判断该方法的参数集合是否为指定集合的子集

s15={1,2,3,4}
s16={1,2,3,4,5,6}
re=s15.issuperset(s16)
print(re)#False
re=s16.issuperset(s15)
print(re)#True

symmetric_difference()、symmetric_difference_update()

1.symmetric_difference():返回两个集合中不重复的元素集合。

2.symmetric_difference_update():移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。

s15={2,3,4}
s16={1,2,3,4,5,6}
re=s15.symmetric_difference(s16)
print(re)#{1, 5, 6}
s15.symmetric_difference_update(s16)
print(s15)#{1, 5, 6}

union()

1.union():返回两个集合的并集

s15={1,2,3,4,5}
s16={3,4,5,6,7}
s17={3,2,9,10}
# re=s15+s16
# print(re)# 报错
re=s15.union(s16)
print(re)#{1, 2, 3, 4, 5, 6, 7}
re=s15.union(s16,s17)
print(re)#{1, 2, 3, 4, 5, 6, 7, 9, 10}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值