python:set和frozenset

    set对象是包含了无序的、不能重复值的集合。通常用来成员测试、从序列中移除重复元素以及数学上的计算,如交集(intersection)、并集(union)、差集(difference)以及对称差集(symmetric difference).

In [6]: l = [1,1,2,2,3,4,5,5]

In [7]: s = set(l)

In [8]: s
Out[8]: {1, 2, 3, 4, 5}

    向其他集合一样,set支持 x in set、len(set) 和 for x in set这样的操作。作为一个无序集合,sets不记录元素的位置和插入的次序。因此,sets不支持索引、切片以及其他类队列操作。

    python中有两种内置的集合类型:set和frozenset. set是可变的,可以使用add() 、remove()方法来改变set。由于它可以改变,因此没有散列值,也不能用作字典的键和其他set的元素。frozenset是固定的、有用散列值的;因此可以用作字典的键或者是其他set的元素。

    二者都支持set之间的比较、只有每一个set都是另一个set的子集时,这两个set才相等。只有当第一个set是另一个set的子集,别且两个set不相等时,第一个set才小于第二个set。只有第一个set是第二个set的超集、并且两者不相等时,第一个set才大于第二个set。

    set可以和frozenset来比较。 "set('abc') == frozenset('abc')" 将会返回True.

    子集和相等的比较不能产生一个完全的排序功能。例如两个disjoint set不能相等,也不是另一个的子集。因此 a<b,a==b,a>b都会返回false。因此,不能使用__cmp__方法。

    set和frozenset的混合运算会返回第一个操作元素的类型。 "frozenset('ab') | set('bc')" 会返回frozenset 类型。

    参考:https://docs.python.org/2.4/lib/types-set.html



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值