python学习笔记(七)——集合的操作

集合set是一类无序的,没有重复元素的迭代对象
set的元素必须是可哈希的,可以是元组,字符串,但是不能是列表,字典等

创建

sets={1,2,'a',1}   
print(sets)
#out:	{1, 2, 'a'}
dic={'a': 5, 'b': 4, 'c': 3}
sets=set(dic.items()) 
lst=list(dic.items())
print(sets,'$',lst)
#out:	{('c', 3), ('b', 4), ('a', 5)}  $  [('a', 5), ('b', 4), ('c', 3)] 

添加元素

sets.add(1)               #添加一个元素
print(sets)
sets.update([2,3,4])      #批量添加
print(sets)
#out:	{('c', 3), ('a', 5), ('b', 4), 1}    {1, 2, 3, 4, ('a', 5), ('b', 4), ('c', 3)} 

删除元素
因为sets是无序的,所以不能根据索引来删除,只能根据值来进行删除

print('删除')            #因为set是无序的所以不能根据索引来删除,只能根据值来删除
s=sets.pop()             #删除的是set排序的第一个最后一个,但是set是无序的,所以一般不用这种方式删除
print(sets,'$',s)
sets.remove(2)           #根据值来删除,只能删除一个
print(sets)
                         #集合更多的删除添加操作都是通过集合的交并补差来实现的
#out:
#{2, 3, 4, ('a', 5), ('b', 4), ('c', 3)} $ 1
#{3, 4, ('a', 5), ('b', 4), ('c', 3)}

集合操作

a={1,2,3}
b={4,5,6}
c={'a','b','c'}
#并集
set1=a.union(b,c)
print(set1)
#交
set2=set1.intersection(b)    
print(set2)
#差
set3=set1.difference(c)
print(set3)
#交并差,都可以添加多个集合参数

#is subset?
print(set2.issubset(set1))
print(c.issubset(set3))
#并集
{1, 2, 3, 4, 5, 6, 'b', 'c', 'a'}
#交
{4, 5, 6}
#差
{1, 2, 3, 4, 5, 6}
#是否为子集
True
False

冻结集合
**frozenset()**创建一个冻结集合,一旦创建不允许曾删元素,相当于列表与元组的关系。只能被重新定义。
frozenset不能使用add,pop等增删操作,但是可以使用交并差等集合操作,因为这些操作并不直接修改原集合

fsets=frozenset([1,1,2,3])
sets=set(['a','b','c'])
print(fsets)
set1=sets.union(fsets)
print(set1)
#Out:
#frozenset({1, 2, 3})
#{1, 'b', 2, 3, 'c', 'a'}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值