python的set集合学习(七)
在python中,set集合是一个无序并且不重复的元素集合,它的关键字是set,依然按照之前的思维方式,
我们定义一个set集合,来看它的类所具备的功能以及对象功能的详细信息,这样的目的很简单,很多时候,
我们不可能把字典,列表,元组,set集合类的方法都记得那么的清楚,但是使用的时候,我们可以通过dir()
和help()来获取它的详细的信息,来实现自己所要实现的东西,OK,见如下的代码:
1 #!/usr/bin/env python 2 #coding:utf-8 3 4 s=set() 5 print u'set对象类的功能为:',dir(s) 6 print u'set对象的详细信息:',help(type(s))
见执行如上的代码后,输出的信息:
C:\Python27\python.exe D:/git/Python/FullStack/Study/index.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自动化测试”