首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python 系统学习笔记(七)-set

2013-10-21 
python 系统学习笔记(七)---set# -*- coding: cp936 -*-print help(set)#set([h, e, l, o])xset(

python 系统学习笔记(七)---set

    # -*- 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 作为参数。相反,它们的运算符版本(operator based counterparts)要求参数必须是 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 的列表没有定义。  

热点排行