set(集合)的功能及其用法详解

目录

set集合

.add

 .clear

.copy

.difference

 .difference_update

 .discard

 .intersection

 .interesection_update

 .isdisjoint

.issubset

.issuperset

.pop

 .remove

 .symmetric_difference

.symmetric_difference_updata

.union

 .update


set集合

集合的表现形式{value1, value2, ....}
集合的特性:
1.是否有序:无序
2.是否可以重复: 不可以重复(放入集合的元素可以去重)

.add

add(...) 将元素添加到集合中。如果元素已存在,则这不起作用。

一次命令只能添加一个元素,且如果元素已经存在在集合中则这次添加不起作用。返回值为空

set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
set_data1.add(1)
set_data1.add(4)
print(set_data1)

 .clear

删除集合内的所有元素,返回值为空,直接在源列表进行操作

set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.clear())
data_dict.clear()
print(data_dict)

打印源集合就是一个空集合

.copy

返回一个集合浅拷贝的值

set_data = {1, 2, 3}
copy_data = set_data.copy

不理解浅拷贝的请参考阿妈上一个博客发文哦

.difference

将两个或多个集合的差集转换为新集合。所以次返回值就是返回这个集合和另一个集合的差集

需要注意的是返回的差集是我们原集合的差集,不包含其他集合的元素。

set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.difference(set_data2))

根据结果可能会更好的理解一点

 .difference_update

从此集合中删除另一个集合的所有元素。其实就是把两个集合的差集从原集合中删除,返回值为空。

set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.difference_update(set_data2))
print(set_data1)

 .discard

如果元素是成员,则从集合中删除该元素。如果不是不会报错但也不会对集合有影响

此操作会比remove更好一点,因为如果元素不存在的情况remove可能会出现问题。次操作返回值为空。

set_data1 = {1, 2, 3}
print(set_data1.discard(3))
print(set_data1)

 .intersection

将两个集合的交集作为新集合返回。就是两个集合中的所有元素的交集以一个新集合的形式作为返回值。原集合不会改变

set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.intersection(set_data2))
print(set_data1)

 .interesection_update

用自身和另一个集合的交集更新一个集合。其意思就是生产一个新的交集集合改变原集合的元素。返回值为空。

set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
set_data1.intersection_update(set_data2)
print(set_data1.intersection_update(set_data2))
print(set_data1)

 .isdisjoint

如果两个集合具有空交集,则返回 True。反之如果两个集合有交集则返回False。

set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.isdisjoint(set_data2))

显而易见返回值肯定为False

.issubset

报告另一个集是否包含此集(判断这个集合是否为另一个集合的子集)。返回值为Ture或者False

set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
set_data3 = {1, 2, 3, 4}
print(set_data1.issubset(set_data2))
print(set_data1.issubset(set_data3))

 根据例子可以知道set_date1不是set_data2的子集,set_data1是set_data3的子集

.issuperset

报告此集是否包含另一个集(判断列一个集合是否为此集合的子集)。(和issubest刚好相反)

set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
set_data3 = {1, 2, 3, 4}
print(set_data1.issuperset(set_data2))
print(set_data3.issuperset(set_data3))

  根据例子可以知道set_date1不是set_data2的子集,set_data1是set_data3的子集。

.pop

删除并返回任意 set 元素。如果集合为空,则引发键错误。

set_data1 = {1, 2, 3}
set_data3 = set_data1.pop()
print(set_data3)
print(set_data1)

 .remove

从集合中删除元素;必须是集合内的元素。如果不是就会引发KeyError。返回值为None

set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.remove(1))
print(set_data1)

 .symmetric_difference

将两个集合的对称差值作为新集合返回(对称差值)。就是包含两个集合差值的所有值组成的一个新集合

set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.symmetric_difference(set_data2))

打印的结果为{1, 4}

.symmetric_difference_updata

用自身和另一个的对称差值更新一个集合。即更改原集合的内容为对称差值。操作返回值为None

set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
set_data1.symmetric_difference_update(set_data2)
print(set_data1)

.union

将集合的并集作为新集合返回。

set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.union(set_data2))

 .update

用自身和其他集合的并集更新集合。返回值为None。,

 

set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.update(set_data2))
print(set_data1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值