设为首页 收藏本站
查看: 889|回复: 0

[经验分享] python 系统学习笔记(七)---set

[复制链接]
发表于 2017-5-3 13:08:20 | 显示全部楼层 |阅读模式

  • python的set和其他语言类似,是一个无序不重复元素集,基本功能包括关系测试和消除重复元素.集合对象还支持union(联合),intersection(交),difference(差)和sysmmetricdifference(对称差集)等数学运算.
  • sets支持xinset,len(set),和forxinset。作为一个无序的集合,sets不记录元素位置或者插入点。因此,sets不支持indexing,slicing,或其它类序列(sequence-like)的操作。



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












# -*- coding: cp936 -*-
print help(set)
#set(['h', 'e', 'l', 'o'])
x=set('hello')
print x
#set(['d', 'r', 'o', 'w', 'l'])
y=set('world')
print y

# 交集
print x&y
#set(['l', 'o'])

print x|y  # 并集
#set(['e', 'd', 'h', 'l', 'o', 'r', 'w'])

print x - y # 差集
#set(['h', 'e'])

print x^y # 对称差集(项在t或s中,但不会同时出现在二者中)


a = [11,22,33,44,11,22]  
print  set(a)  
#set([33, 11, 44, 22])

print [i for i in set(a)] #去重

s=set('hello')
t=set('world')
len(s)

#set 的长度
x='h'
print x in s

#测试 x 是否是 s 的成员

x not in s

#测试 x 是否不是 s 的成员

s.issubset(t)
#s <= t
#测试是否 s 中的每一个元素都在 t 中

s.issuperset(t)
s >= t
#测试是否 t 中的每一个元素都在 s 中

s.union(t)
s | t
#返回一个新的 set 包含 s 和 t 中的每一个元素

s.intersection(t)
s & t
#返回一个新的 set 包含 s 和 t 中的公共元素

s.difference(t)
s - t
#返回一个新的 set 包含 s 中有但是 t 中没有的元素

s.symmetric_difference(t)
s ^ t
#返回一个新的 set 包含 s 和 t 中不重复的元素

s.copy()

#回 set “s”的一个浅复制










  • 请注意:union(),intersection(),difference()和symmetric_difference()的非运算符(non-operator,就是形如s.union()这样的)版本将会接受任何iterable作为参数。相反,它们的运算符版本(operatorbasedcounterparts)要求参数必须是sets。这样可以避免潜在的错误,如:为了更可读而使用set('abc')&'cbs'来替代set('abc').intersection('cbs')。从2.3.1版本中做的更改:以前所有参数都必须是sets。
  • 另外,Set和ImmutableSet两者都支持set与set之间的比较。两个sets在也只有在这种情况下是相等的:每一个set中的元素都是另一个中的元素(二者互为subset)。一个set比另一个set小,只有在第一个set是第二个set的subset时(是一个subset,但是并不相等)。一个set比另一个set打,只有在第一个set是第二个set的superset时(是一个superset,但是并不相等)
  • 子set和相等比较并不产生完整的排序功能。例如:任意两个sets都不相等也不互为子set,因此以下的运算都会返回False:a<b,a==b,或者a>b。因此,sets不提供__cmp__方法。
  • 因为sets只定义了部分排序功能(subset关系),list.sort()方法的输出对于sets的列表没有定义。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-372630-1-1.html 上篇帖子: Python实践——datetime日期操作脚本 下篇帖子: 两个Python web框架:Django & Tornado
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表