python基础(集合)

本文介绍了Python中的集合(set)数据结构,包括如何创建、集合的无序性和不重复性,以及交集、并集、差集、对称差集等集合运算。此外,还详细讲解了集合的推导式、添加元素的add()和update()方法、移除元素的remove()和discard()方法、pop()随机删除元素、clear()清空集合、copy()复制集合,以及issuperset()、issubset()、isdisjoint()等集合判断方法。
摘要由CSDN通过智能技术生成

集合(set)是一个无序的不重复元素序列。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

集合与之前列表、元组类似,可以存储多个数据,但是这些数据是不重复的。

集合对象还支持交集(intersection),差集(difference)、并集(union)和对称差集(sysmmetric_difference)集合没有顺序

交集:(a&b) (intersection) #公共部分

并集:(a|b) (union)#没有重复的

差集:(a-b) (difference) #只有 a 项有,b项没有

对称差集:(a^b) (sysmmetric_difference) #只在 x 或 y 中,但是不会同时出现在二者中

>>>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} >>> print(basket) # 这里演示的是去重功能 {'orange', 'banana', 'pear', 'apple'} >>> 'orange' in basket # 快速判断元素是否在集合内 True >>> 'crabgrass' in basket False

 

>>> # 下面展示两个集合间的运算. >>> a = set('abracadabra') >>> b = set('alacazam') >>> a {'a', 'r', 'b', 'c', 'd'} >>> a - b 差集 # 返回集合a中包含的元素在集合b中没有的 {'r', 'd', 'b'} >>> a | b 并集 # 返回集合a和b中包含的所有元素 {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'} >>> a & b 交集 # 返回集合a和b中都包含了的元素 {'a', 'c'} >>> a ^ b 对称差集 # 不同时包含于a和b的元素 {'r', 'd', 'b', 'm', 'z', 'l'}

 

集合推导式(Set comprehension):

>>>a = {x for x in 'abracadabra' if x not in 'abc'} >>> a {'r', 'd'}

 

集合专用函数

1、添加元素

add()

向集合中添加一个元素 格式:集合.add(值) 返回值:None 注意:直接改变原有集合

>>>thisset = set(("Google", "Runoob", "Taobao")) >>> thisset.add("Facebook") >>> print(thisset) {'Taobao', 'Facebook', 'Google', 'Runoob'}

还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等,语法格式如下:

s.update(x)

>>>thisset = set("Google", "Runoob", "Taobao") >>> thisset.update({1,3}) >>> print(thisset) {1, 3, 'Google', 'Taobao', 'Runoob'} >>> thisset.update([1,4],[5,6]) >>> print(thisset) {1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}

 

2、移除元素

remove()

删除集合中的某个元素 格式:集合.remove(值) 返回值:None 注意:直接改变原有集合

>>>thisset = set(("Google", "Runoob", "Taobao")) >>> thisset.remove("Taobao") >>> print(thisset) {'Google', 'Runoob'} >>> thisset.remove("Facebook") # 不存在会发生错误 Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'Facebook'

discard()

删除集合中的某个元素 格式:集合.dicard(值) 返回值:None 注意:直接改变原有集合

remove移除非成员值会报错,discard移除非成员值,啥也不报错!

>>>thisset = set(("Google", "Runoob", "Taobao")) >>> thisset.discard("Facebook") # 不存在不会发生错误 >>> print(thisset) {'Taobao', 'Google', 'Runoob'}

pop()

随机删除集合中的一个元素 格式:集合.pop() 返回值:删除的那个元素 注意:直接改变原有集合

thisset = set(("Google", "Runoob", "Taobao", "Facebook")) x = thisset.pop()

print(x) >>>输出Runoob

 

3、清空集合

clear()

清空集合 格式:集合.clear() 返回值:None 注意:直接改变原有集合

>>>thisset = set(("Google", "Runoob", "Taobao")) >>> thisset.clear() >>> print(thisset) set()

copy()

复制集合 格式:集合.copy() 返回值:复制的一份集合

fruits = {"apple", "banana", "cherry"} x = fruits.copy() print(x)

输出结果为:

{'cherry', 'banana', 'apple'}

 

4、集合判断

issuperset()

检测一个集合是不是另外一个集合的超集 格式:集合1.issuperset(集合2) 返回值:布尔值

x = {"f", "e", "d", "c", "b", "a"} y = {"a", "b", "c"} z = x.issuperset(y) print(z)

输出结果为:True

x = {"f", "e", "d", "c", "b"} y = {"a", "b", "c"} z = x.issuperset(y) print(z)

输出结果为:False

issubset()

检测一个集合是不是另外一个集合的子集 格式:集合1.issubset(集合2) 返回值:布尔值

x = {"a", "b", "c"} y = {"f", "e", "d", "c", "b", "a"} z = x.issubset(y) print(z)

输出结果为:True

x = {"a", "b", "c"} y = {"f", "e", "d", "c", "b"} z = x.issubset(y) print(z)

输出结果为:False

isdisjoint()

检测2个集合是否不相交 格式:集合1.isdisjoint(集合) 返回值:布尔值

x = {"apple", "banana", "cherry"} y = {"google", "runoob", "facebook"} z = x.isdisjoint(y) print(z)

输出结果为:True

x = {"apple", "banana", "cherry"} y = {"google", "runoob", "apple"} z = x.isdisjoint(y) print(z)

输出结果为:False

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值