Python中集合Set的介绍及使用方法

集合set

  • 集合(set)是一个无序的不重复元素序列。
  • 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
>>>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} #创建集合的方法
>>> print(basket)                      # 去重功能
{'orange', 'banana', 'pear', 'apple'}

>>> 'orange' in basket                 # 快速判断元素是否在集合内
True
>>> 'crabgrass' in basket
False
 
>>> # 两个集合间的运算
>>> a = set('abracadabra')	#使用set函数创建集合
>>> 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'}
  1. 添加元素 add update
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.add("Facebook")
>>> print(thisset)
{'Taobao', 'Facebook', 'Google', 'Runoob'}

>>> thisset.update({1,3})
>>> print(thisset)
{1, 3, 'Google', 'Taobao', 'Google', 'Runoob'}

>>> thisset.update([1,4],[5,6])  
>>> print(thisset)
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'Google', 'Runoob'}
  1. 移除元素 remove discard pop
  • s.remove( x ) 将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.remove("Taobao")
>>> print(thisset)
{'Google', 'Runoob'}
>>> thisset.remove("Facebook")   # 不存在会发生错误
  • s.discard( x ) 移除集合中的元素,且如果元素不存在,不会发生错误
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.discard("Facebook")  # 不存在不会发生错误
>>> print(thisset)
{'Taobao', 'Google', 'Runoob'}
  • s.pop() 随机删除一个元素
>>>thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
>>>thisset.pop()
>>>print(thisset)
{'Runoob', 'Facebook', 'Google'}	#随机删除。结果不唯一

然而在交互模式,pop 是删除集合的第一个元素(排序后的集合的第一个元素)。

  1. 计算元素的个数
>>>s = {'a', 'b', 'c'}
>>>a = len(s)
>>>print(a)
3
  1. 删除集合
>>>s = {'a', 'b', 'c'}
>>>s.clear()
>>>print(s)
set()
  1. set.difference(set)
  • 用于返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
z = x.difference(y) 
print(z)

{'cherry', 'banana'}
  1. set.intersection(set1, set2 … etc)
  • 用于返回两个或更多集合中都包含的元素,即交集。返回一个新的集合。
x = {"apple", "banana", "cherry"}
y = {"google", "runoob", "apple"}
z = x.intersection(y) 
print(z)

{'apple'}
  1. set.isdisjoint(set)
  • 用于判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。。
x = {"apple", "banana", "cherry"}
y = {"google", "runoob", "facebook"}
z = x.isdisjoint(y) 
print(z)

True
  1. set.issubset(set)
  • 判断指定集合是否为该方法参数集合的子集,如果是则返回 True,否则返回 False。
x = {"a", "b", "c"}
y = {"f", "e", "d", "c", "b", "a"}
z = x.issubset(y)
print(z)

True
  1. set.issuperset(set)
  • 判断该方法的参数集合是否为指定集合的子集 ,如果是则返回 True,否则返回 False。
x = {"f", "e", "d", "c", "b", "a"}
y = {"a", "b", "c"}
z = x.issuperset(y) 
print(z)

True
  1. 其他方法查手册

冰冻集合

  • 不允许用户修改
sa = {1, 2, 3, 4, 5, 6}
print(sa)
sb = frozenset(sa)
print(sb)

>>>
{1, 2, 3, 4, 5, 6}
frozenset({1, 2, 3, 4, 5, 6})# 这个集合没有增加功能
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值