python的set集合学习(七)

在python中,set集合是一个无序并且不重复的元素集合,它的关键字是set,依然按照之前的思维方式,我们定义一个set集合,来看它的类所具备的功能以及对象功能的详细信息,这样的目的很简单,很多时候,我们不可能把字典,列表,元组,set集合类的方法都记得那么的清楚,但是使用的时候,我们可以通过dir()和help()来获取它的详细的信息,来实现自己所要实现的东西,OK,见如下的代码:

#!/usr/bin/env python 
#-*- coding:utf-8 -*-

s=set()
print u'set对象类的功能为:',dir(s)
print u'set对象的详细信息:',help(type(s))

见执行如上的代码后输出的信息:

C:\Python27\python.exe D:/git/Python/FullStack/share/setTest.py

set对象类的功能为: ['__and__', '__class__', '__cmp__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']

set对象的详细信息:Help on class set in module __builtin__:

class set(object)

| set() -> new empty set object

| set(iterable) -> new set object

|

| Build an unordered collection of unique elements.

|

| Methods defined here:

|

| __and__(...)

| x.__and__(y) <==> x&y

|

| __cmp__(...)

| x.__cmp__(y) <==> cmp(x,y)

|

| __contains__(...)

| x.__contains__(y) <==> y in x.

|

| __eq__(...)

| x.__eq__(y) <==> x==y

|

| __ge__(...)

| x.__ge__(y) <==> x>=y

|

| __getattribute__(...)

| x.__getattribute__('name') <==> x.name

|

| __gt__(...)

| x.__gt__(y) <==> x>y

|

| __iand__(...)

| x.__iand__(y) <==> x&=y

|

| __init__(...)

| x.__init__(...) initializes x; see help(type(x)) for signature

|

| __ior__(...)

| x.__ior__(y) <==> x|=y

|

| __isub__(...)

| x.__isub__(y) <==> x-=y

|

| __iter__(...)

| x.__iter__() <==> iter(x)

|

| __ixor__(...)

| x.__ixor__(y) <==> x^=y

|

| __le__(...)

| x.__le__(y) <==> x<=y

|

| __len__(...)

| x.__len__() <==> len(x)

|

| __lt__(...)

| x.__lt__(y) <==> x<y

|

| __ne__(...)

| x.__ne__(y) <==> x!=y

|

| __or__(...)

| x.__or__(y) <==> x|y

|

| __rand__(...)

| x.__rand__(y) <==> y&x

|

| __reduce__(...)

| Return state information for pickling.

|

| __repr__(...)

| x.__repr__() <==> repr(x)

|

| __ror__(...)

| x.__ror__(y) <==> y|x

|

| __rsub__(...)

| x.__rsub__(y) <==> y-x

|

| __rxor__(...)

| x.__rxor__(y) <==> y^x

|

| __sizeof__(...)

| S.__sizeof__() -> size of S in memory, in bytes

|

| __sub__(...)

| x.__sub__(y) <==> x-y

|

| __xor__(...)

| x.__xor__(y) <==> x^y

|

| add(...)

| Add an element to a set.

|

| This has no effect if the element is already present.

|

| clear(...)

| Remove all elements from this set.

|

| copy(...)

| Return a shallow copy of a set.

|

| difference(...)

| Return the difference of two or more sets as a new set.

|

| (i.e. all elements that are in this set but not the others.)

|

| difference_update(...)

| Remove all elements of another set from this set.

|

| discard(...)

| Remove an element from a set if it is a member.

|

| If the element is not a member, do nothing.

|

| intersection(...)

| Return the intersection of two or more sets as a new set.

|

| (i.e. elements that are common to all of the sets.)

|

| intersection_update(...)

| Update a set with the intersection of itself and another.

|

| isdisjoint(...)

| Return True if two sets have a null intersection.

|

| issubset(...)

| Report whether another set contains this set.

|

| issuperset(...)

| Report whether this set contains another set.

|

| pop(...)

| Remove and return an arbitrary set element.

| Raises KeyError if the set is empty.

|

| remove(...)

| Remove an element from a set; it must be a member.

|

| If the element is not a member, raise a KeyError.

|

| symmetric_difference(...)

| Return the symmetric difference of two sets as a new set.

|

| (i.e. all elements that are in exactly one of the sets.)

|

| symmetric_difference_update(...)

| Update a set with the symmetric difference of itself and another.

|

| union(...)

| Return the union of sets as a new set.

|

| (i.e. all elements that are in either set.)

|

| update(...)

| Update a set with the union of itself and others.

|

| ----------------------------------------------------------------------

| Data and other attributes defined here:

|

| __hash__ = None

|

| __new__ = <built-in method __new__ of type object>

| T.__new__(S, ...) -> a new object with type S, a subtype of T

None

Process finished with exit code 0

依据如上的详细信息可以看到,在新式类set中,有很多的方法,那么这里,我们就学习部分经常使用的方法,其他的方法,如果不清楚的,可以看它的注释,有详细的解释。经常使用的方法案例代码为:

#!/usr/bin/env python 
#-*- coding:utf-8 -*-

s=set()
#集合插入数据
s.add('wuya')
s.add('admin')
print u'见插入数据后的集合内容:',s,type(s)

#把列表转换为集合
list1=[11,22,33,44,55]
print u'列表list1转换为集合后:',set(list1),type(set(list1))

#查看b集合存在,a集合不存在的情况
b={1,2,3,4,5}
a={6,7,8,9,0,1}
print u'查看b集合存在,a集合不存在的内容:',b.difference(a)
print u'移除指定的集合,不存在不会出现错误:',b.discard('wuya')
print u'查看集合a,b都存在的值:',a.intersection(b)
#没有交集,返回True,存在交集返回False
print u'判断集合a,b是否存在交集:',a.isdisjoint(b)
print u'移除集合的元素并且获取值:',a.pop()
print u'获取a,b集合的并集:',a.union(b)
b.update(a)
print u'集合b更新后的内容为:',b

原文发布于微信公众号 - Python自动化测试(wuya-python)

原文发表时间:2017-08-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏codingforever

经典算法巡礼(六) -- 排序之快速排序

快速排序正如她的名字,她是一种排序效率相当高的算法,而且可能是应用最广泛的排序算法了。快速排序流行的原因是她实现简单,适用于各种不同的输入数据且在一般应用中比其...

453
来自专栏pangguoming

理解闭包 js回收机制

为什么要有回收机制?why? 打个比方,我有一个内存卡,这个内存是8G的,我把文件,视频,音乐,都保存到了这个内存卡,随着我的储存的内容越来越多,这个内存卡已经...

4207
来自专栏osc同步分享

Timer类的schedule()方法

timer.schedule(new MyTask(),long time1,long timer2); 第一个参数,是 TimerTask 类,在包:impo...

35511
来自专栏安恒网络空间安全讲武堂

二进制学习系列-堆溢出

在C++中,如果类中有虚函数,那么它就会有一个虚函数表的指针__vfptr,在类对象最开始的内存数据中。之后是类中的成员变量的内存数据。 对于子类,最开始的内存...

2373
来自专栏前端进阶之路

JS学习系列 06 - 变量对象

上一节我们讨论了执行上下文,那么在上下文中到底有什么内容,为什么它会和作用域链扯上关系,JS 解释器又是怎么找到我们声明的函数和变量,看完这一节,相信大家就不会...

1052
来自专栏HelloCode开发者学习平台

BAT面试算法进阶(2)-两数相加

You are given two non-empty linked lists representing two non-negative integ...

1052
来自专栏python3

python 列表(List)

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

1541
来自专栏進无尽的文章

基础篇-ObjectC继承、类别、属性

    在实际的开发过程中,继承和类别都会得到很多用处。对于界面相似度很高的情况下,使用继承可以节省很多代码和设置,只需要在子类中重写父类中的方法,或者增加新的...

811
来自专栏Kevin-ZhangCG

[ Java面试题 ]泛型篇

2145
来自专栏Modeng的专栏

Javascript数组系列五之增删改和强大的 splice()

今天是我们介绍数组系列文章的第五篇,也是我们数组系列的最后一篇文章,只是数据系列的结束,所以大家不用担心,我们会持续的更新干货文章。

1372

扫码关注云+社区

领取腾讯云代金券