python学习4.2集合

一、集合是没有 value 的字典(与字典一样,数值元素不能重复,而且元素无序)

(1)可以用 set() 来创建集合

输入:

s1 = set(range(1, 11))
print(s1)
s2 = set([1, 1, 2, 2, 3])
print(s2)

输出:

{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
{1, 2, 3}

二、添加元素

(1)使用 .add() 添加单个元素

输入:

a = {1, 2, 3, 4, 5}
a.add(6)
print(a)

输出:

{1, 2, 3, 4, 5, 6}

(2)使用 .update() 添加多个元素(添加对象可以是集合,列表或是元组)

输入:

a = {1, 2, 3, 4, 5}
b = {6, 7, 8, 9}
a.update(b)
print(a)

输出:

{1, 2, 3, 4, 5, 6, 7, 8, 9}

三、删除元素

(1)使用 .remove() 删除单个元素

输入:

a = {1, 2, 3, 4, 5}
a.remove(1)
print(a)

输出:

{2, 3, 4, 5}

注意:用 .remove 若元素不存在会报错,用 .discard() 不会报错 

(2).pop() 为随机删除一个元素

(3).clear() 为清空集合

四、集合间的关系

(1)相等,包含元素相同就相等

(2)判断一个集合是否是另外一个集合的子集,用 .issubset() 

输入:

a = {1, 2, 3, 4, 5}
b = {1, 2, 3}
print(a.issubset(b))
print(b.issubset(a))

输出:

False
True

(3)判断一个集合是否是另外一个集合的超集(比如b是a的子集,那么a是b的超集)

(4)判断两个集合是否含有交集,使用 .isdisjoint() 

输入:

a = {1, 2, 3, 4, 5}
b = {4, 5, 6}
print(a.isdisjoint(b))

输出:

False

五、集合的数学操作

(1)求交集,用 .intersection()& ,两个集合本身并没有发生改变

输入:

a = {1, 2, 3, 4, 5}
b = {4, 5, 6}
print(a.intersection(b))
print(a & b)

输出:

{4, 5}

(2)求并集,使用 .union() 或 | ,两个集合本身并没有发生改变

输入:

a = {1, 2, 3, 4, 5}
b = {4, 5, 6}
print(a.union(b))
print(a | b)

输出:

{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5, 6}

(3)求差集,使用 .difference() 或 - ,两个集合本身并没有发生改变

输入:

a = {1, 2, 3, 4, 5, 6}
b = {3, 4, 5, 6, 7, 8}
print(a - b)
print(b - a)
print(a.difference(b))
print(b.difference(a))

输出:

{1, 2}
{8, 7}
{1, 2}
{8, 7}

(4)对称差集,

输入:

a = {1, 2, 3, 4, 5}
b = {3, 4, 5, 6, 7, 8}
print(a ^ b)
print(a.symmetric_difference(b))

输出:

{1, 2, 6, 7, 8}
{1, 2, 6, 7, 8}

                                                         集合生成式

输入:

a = {i for i in range(1, 11)}
print(a)

输出:

a = {i for i in range(1, 11)}
print(a)

总结:

(1)只有元组内的数据不可变

(2)字典和集合不可重复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值