set函数

set() 函数创建的集合具有以下特点:

  1. 无序性(Unordered):集合中的元素没有固定的顺序,每次输出的顺序可能不同。

  2. 唯一性(Unique):集合中的元素是唯一的,重复的元素会被自动去重,确保集合中不包含重复的元素。

  3. 不可变性(Immutable):集合中的元素必须是可哈希的,因此集合中不能包含可变对象,如列表、字典等。但集合本身是可变的,可以动态地添加、删除元素。

  4. 快速查找(Fast lookup):集合是基于哈希表实现的,因此查找集合中是否包含某个元素的操作非常高效,时间复杂度为 O(1)。

  5. 集合运算(Set operations):集合支持多种集合运算,如并集、交集、差集等,可以方便地进行集合间的操作和计算。

集合和字典的区别(尤其是创建空集合,而且集合类似于字典,但是只有key,没有value):

使用大括号 {}

my_set = {} 
print(type(my_set)) 
# 输出:<class 'dict'>

这种方法创建的对象是一个空的字典,而不是空的集合。

使用 set() 函数:

my_set = set() 
print(type(my_set))
 # 输出:<class 'set'>

集合操作函数如下:

difference()
set1={1,2,3,4,5}
set2={1,2,3,4}
print(set1.difference(set2))   #   实际上就是set1-set2;答案为{5}

set1={1,2,3}
set2={1,2,3,4}
print(set1.difference(set2))   #答案为 set(),因为返回一个set1存在的set2不存在的没有,于是返回一个空集合  那就是set()
set1={1,2,3,4,5}
set2={1,2,3,4}
print(set1-set2)    和

set1={1,2,3,4,5}
set2={1,2,3,4}
print(set1.difference(set2))  
的有区别

在Python中,set1 - set2set1.difference(set2) 都可以用来计算两个集合的差集,但是它们的使用方式略有不同。

  1. 使用 - 运算符:

    • set1 - set2 表示从 set1 中移除与 set2 中相同的元素,并返回结果。这种语法更类似于数学上的集合运算。
    • 示例:print(set1 - set2) 将打印出 {5},即 set1 中存在而 set2 中不存在的元素。
  2. 使用 difference() 方法:

    • set1.difference(set2) 也表示从 set1 中移除与 set2 中相同的元素,并返回结果。但这是一个方法调用,需要通过调用对象来调用。
    • 示例:print(set1.difference(set2)) 也将打印出 {5},与上面的示例相同。

总体上说,这两种方法的作用是相同的,都是计算两个集合的差集。使用哪种方法取决于你的个人偏好和代码上下文。

inetrsection()
set1={1,2,3,4,5}
set2={1,2,3,4}
print(set1.intersection(set2))
print(set1&set2)
union()
set1={1,2,3,4,5}
set2={1,2,3,4}
print(set1.union(set2))
print(set1|set2)
discard()

discard() 方法用于移除集合中的指定元素。如果元素在集合中存在,则移除该元素,如果不存在,则不执行任何操作。

# 创建一个集合
my_set = {1, 2, 3, 4, 5}

# 移除元素 3
my_set.discard(3)

print(my_set)  # 输出: {1, 2, 4, 5}

# 尝试移除一个不存在的元素
my_set.discard(6)

print(my_set)  # 输出: {1, 2, 4, 5},6并不会被添加到集合中

discard() 方法与 remove() 方法类似,但区别在于当要移除的元素不存在时,remove() 方法会引发 KeyError 异常,而 discard() 方法不会引发异常。

update()

update() 方法用于将一个集合的元素添加到另一个集合中。如果有重复的元素,只会添加一个副本。

# 创建两个集合
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# 将 set2 的元素添加到 set1 中
set1.update(set2)

print(set1)  # 输出: {1, 2, 3, 4, 5}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值