python:集合(set)

  • 与dict类似,set也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。创建一个set,需要提供一个list作为输入集合:
In [10]:
s = set([3,4,5])
s
Out[10]:
{3, 4, 5}
  • 重复元素在set中会被自动被过滤,通过add(key)方法往set中添加元素,重复添加不会有效果,通过remove(key)方法可以删除元素,例如:
In [11]:
s = set([3,3,4,4,5,5,6,6,7])
s
Out[11]:
{3, 4, 5, 6, 7}
In [12]:
s.add(1)
s
Out[12]:
{1, 3, 4, 5, 6, 7}
In [13]:
s.add(1)
s
Out[13]:
{1, 3, 4, 5, 6, 7}
In [14]:
s.remove(5)
s
Out[14]:
{1, 3, 4, 6, 7}
  • 由于set是无序和无重复元素的集合,所以两个set可以做数学意义上的交并集等操作:
In [15]:
s1 = set([3,4,5,6])
s2 = set([5,6,7,8,9])
s1 & s2
Out[15]:
{5, 6}
In [16]:
s1 | s2
Out[16]:
{3, 4, 5, 6, 7, 8, 9}
  • 与dict一样,set同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部不会有重复元素。所以把list放入set,会报错。
In [17]:
s = set([1,2,[1,2]])
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-17-806dee2b7dcf> in <module>()
----> 1 s = set([1,2,[1,2]])

TypeError: unhashable type: 'list'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值