python类详解_Python的集合类型详解17

一,集合

1.集合一组无序排列的可哈希的值;

2.支持集合关系测试,例如:in、not in、迭代等;

例如:

In [35]: s1=set(1,2,3)

---------------------------------------------------------------------------

TypeError Traceback (most recent call last)

in ()

----> 1 s1=set(1,2,3)

TypeError: set expected at most 1 arguments, got 3

In [36]: s1=set([1,2,3])

In [37]: s1

Out[37]: {1, 2, 3}

In [38]: type(s1)

Out[38]: set

3.不支持索引、元素获取和切片;

4.集合的类型:set()、frozenset()

5.集合没有特定语法格式,只能通过工厂函数创建;

二,集合类型的方法和操作

项目

描述

len(s)

返回s中项目数

s.copy()

制作s的一份副本

s.difference(t)

求差集。返回所有在s中,但不在t中的项目

s.intersection(t)

求交集。返回所有同时在s和t中的项目

s.isdisjoint(t)

如果s和t没有相同项,则返回True

s.issubset(t)

如果s是t的一个子集,则返回True

s.issuperset(t)

如果s是t的一个超级,则返回True

s.symmetric_difference(t)

求对称差集。返回所有在s或t中,但又不同时在这两个集合中的项

s.union(t)

求并集。返回所有在s或t中的项

操作

描述

操作

描述

s | t

s和t的并集

len(s)

集合中项数

s & t

s和t的交集

max(s)

最大值

s - t

求差集

min(s)

最小值

s ^ t

求对称差集

例如:

In [40]: set. //set方法

set.add set.intersection set.pop

set.clear set.intersection_update set.remove

set.copy set.isdisjoint set.symmetric_difference

set.difference set.issubset set.symmetric_difference_update

set.difference_update set.issuperset set.union

set.discard set.mro set.update

In [41]: s2 = set([2,3,4]) //并集

In [42]: s1 & s2

Out[42]: {2, 3}

In [43]: s1.symmetric_difference

s1.symmetric_difference s1.symmetric_difference_update

In [43]: s1.symmetric_difference(s2) //对称差集

Out[43]: {1, 4}

In [44]: s3 = set('xyz') //迭代

In [45]: s3

Out[45]: {'x', 'y', 'z'}

In [46]: s3.pop() //删除或弹出元素

Out[46]: 'y'

In [47]: s3.pop()

Out[47]: 'x'

In [48]: s3.pop()

Out[48]: 'z'

In [49]: s3.pop()

---------------------------------------------------------------------------

KeyError Traceback (most recent call last)

in ()

----> 1 s3.pop()

KeyError: 'pop from an empty set'

In [56]: s3 = set('xyz') //支持异构

In [57]: id(s1)

Out[57]: 19454768

In [59]: print s1,s3

set([1, 2, 3]) set(['y', 'x', 'z'])

In [60]: s1.update(s3)

In [61]: id(s1)

Out[61]: 19454768

In [62]: id(s3)

Out[62]: 21995832

In [63]: print s1

set([1, 2, 3, 'y', 'x', 'z'])

In [64]: print s3

set(['y', 'x', 'z'])

In [65]: s1.add(7) //添加元素

In [66]: print s1

set([1, 2, 3, 7, 'y', 'x', 'z'])

In [67]: s1.add('Jerry')

In [68]: print s1

set([1, 2, 3, 7, 'y', 'x', 'z', 'Jerry'])

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值