Python集合Set详解:创建、增删改查与数学运算
本文详细介绍Python中集合(Set)的创建、访问、增删及数学运算。涵盖使用set()或大括号创建集合,遍历获取元素,利用add()、update()添加,remove()、discard()、pop()、clear()及del删除元素。同时解析copy()、issuperset()、union()、difference()、intersection()、symmetric_difference()及isdisjoint()等方法,助力掌握集合去重与逻辑处理。
前序
在Python编程语言中,集合(Set)是一种无序且不包含重复元素的数据结构,它不支持通过索引访问元素。集合通常应用于数据去重处理,以及执行并集、交集、差集和补集等数学集合运算。
集合操作
创建集合
可以通过调用set()函数,或者将元素直接放置在一对大括号{}中来创建集合。
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
Months={"Jan","Feb","Mar"}
Dates={21,22,17}
访问集合
由于集合是无序的,我们无法直接通过索引访问集合中的单个元素。要获取集合中的所有元素,可以遍历整个集合,从而逐个处理其中的元素。
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
for d in Days:
print(d)
判断集合是存在指定值
x = {"a","b","c"}
print("a" in x)
集合添加
可以使用add()方法向集合中添加单个元素。
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])
Days.add("Sun")
print(Days)
若需一次性添加多个元素,可以使用update()方法。
thisset = {"apple", "banana", "cherry"}
thisset.update(["orange", "mango", "grapes"])
print(thisset)
集合删除
要从集合中移除元素,可以使用remove()或discard()方法。
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])
Days.discard("Sun")
print(Days)
thisset = {"apple", "banana", "cherry"}
thisset.remove("banana")
print(thisset)
需要注意的是,如果使用remove()删除一个不存在的元素,程序会抛出错误;而discard()在元素不存在时不会报错,更加安全。
此外,还可以使用pop()方法删除元素,但该方法会移除并返回集合中的“最后一个”元素。由于集合是无序的,具体被删除的是哪个元素是不确定的。pop()方法会返回被删除的那个元素值。
thisset = {"apple", "banana", "cherry"}
x = thisset.pop()
print(x)
clear()方法用于清空集合内的所有元素,使集合变为空集合。
thisset = {"apple", "banana", "cherry"}
thisset.clear()
print(thisset)
del关键字则可以彻底删除整个集合对象,使其不再存在于内存中。
thisset = {"apple", "banana", "cherry"}
del thisset
print(thisset)
集合函数
返回集合的副本
如果不使用copy()方法,而是直接使用等号(=)进行赋值,实际上只是复制了集合的引用地址。这会导致修改副本时,原集合也会发生相应变化,因此建议使用copy()创建独立的副本。
fruits = {"apple", "banana", "cherry"}
x = fruits.copy()
print(x)
判断集合内是否包含另一个集合
issuperset()方法用于判断指定集合中的所有元素是否都包含在原始集合中。如果是,则返回True,否则返回False。
x = {"f", "e", "d", "c", "b", "a"}
y = {"a", "b", "c"}
z = x.issuperset(y)
print(z)
并集
可以使用union()方法生成一个新集合,其中包含两个集合的所有元素;或者使用update()方法将一个集合的所有元素添加到另一个集合中。
set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set3 = set1.union(set2)
print(set3)
set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set1.update(set2)
print(set1)
需要注意的是,union()和update()操作都会自动排除重复的元素。
差集
差集运算返回存在于第一个集合但不存在于第二个集合的元素。
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
z = x.difference(y)
print(z)
交集
intersection()方法用于返回两个或多个集合中共同存在的元素。
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
z = x.intersection(y)
print(z)
补集
对称差集(symmetric_difference)返回的集合包含两个集合中不共有的元素,即剔除两个集合都包含的元素后剩余的部分。
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
z = x.symmetric_difference(y)
print(z)
交集判断
isdisjoint()方法用于判断两个集合是否没有共同元素。如果集合x和集合y没有交集,则返回True,否则返回False。
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "facebook"}
z = x.isdisjoint(y)
print(z)以上就是关于Python集合(Set)基础使用教程的详细介绍,涵盖了创建、增删改查及常见数学运算。如需了解更多Python相关内容,建议查阅本站过往文章或继续阅读后续教程,感谢大家的支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













