Python基础—集合

集合

一、性质

1.Python中的集合和数学中的集合很相似

2.集合是一个无序的容器型数据类型(没有下标)

3.集合是一个可变的容器型数据类型(增删)

4.集合的容器符号:{}、数据类型:set

5.集合具有无序性、确定性、互异性。(从数学角度,集合的定义为由一个或多个元素构成的确定的整体)

二、创建集合

# 创建一个空集合
s1 = set()
print(s1, type(s1))
s2 = {}   //创建字典的写法
print(s2, type(s2))

运行结果:set() <class 'set'>
         {} <class 'dict'>

三、集合的运算

1.交(&)并(|)差(-)对称差(^)运算

s1 = {1, 2, 3, 4, 5}
s2 = {2, 4, 6, 8, 10}
print(s1 & s2)
print(s1 | s2)
print(s1 - s2)
print(s2 - s1)
print(s1 ^ s2)

运行结果:{2, 4}
         {1, 2, 3, 4, 5, 6, 8, 10}
         {1, 3, 5}
         {8, 10, 6}
         {1, 3, 5, 6, 8, 10}

2.成员运算in、not in

3.子集(<=)、真子集(<)、超集(>)

子集:是原集中任意个数元素排列组合的个体。
真子集:是原集除本身之外任意个数元素排列组合的个体。
超集:就是原集对真子集。
s3 = {1, 2}
s4 = {1, 2, 3}
print(s4 > s3)
print(s4 > s4)
print(s3 < s4)
print(s3 <= s4)
print(s3 <= s3)

运行结果:True
         False
         True
         True
         True

四、集合的循环遍历

for i in s4:
	print(i)

运行结果:1
         2
         3

五、集合的互异性

集合中的元素都是独一无二的

例如:给列表去重

list1 = ['a', 'b', 'c', 'd', 'a', 'b', 'd']
list2 = list(set(list1))
print(list2)

运行结果:['c', 'a', 'b', 'd']

六、集合中的元素只能是不可变数据类型

可变:列表、集合、字典

不可变:整型、浮点型、复数、字符串、空值、布尔值、元组

七、集合的增删

add:将元素添加到集合中

update:将容器中的元素添加到集合中

s1 = set()
s1.add('Python')
s1.add('Java')
s1.update(['html', 'c', 'c++'])
print(s1)

运行结果:{'Python', 'c++', 'c', 'Java', 'html'}

discard:删除集合中指定元素,元素不存在不报错

remove:删除集合中的指定元素,元素不存在报错

pop:删除集合中本次排名第一的元素并能返回删除的是那个元素

clear:清空集合

s1.discard('golang')
s1.discard('html')
s1.remove('Java')
print(s1.pop())
print(s1)

运行结果:Python
         {'c++', 'c'}

1.如果不考虑元素的顺序,可以使用集合进行快速去重。

2.利用集合的交并差对称差、子集、真子集、超集等运算操作,可以快速的查看数据之间关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

㤅uu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值