Python -- set

Python执行某一类的时候,相当于执行__init__ 方法
例如:list() 
            list __init__
 

set 是一个无序且不重复的元素集合,可看做数学中的集合

用法:
1.创建集合
  s = set() 创建空集合 
 s = set([11,22,33])
  s = set('asdfghh')
  s = {'asd','saf'}
2.访问集合
 a in s
3.更新集合
   s.add()---添加,每次只能添加一个元素
   s.clear() ----清空
   s.upadte()---更新集合,并赋值给s。可以迭代批量添加,相当于执行for循环然后重复执行.add方法。
  
  s.discard()---删除指定元素,不存在不报错
   s.remove()---删除指定元素,不存在则报错
  s.pop() -----随机删除元素
  

4、联合(|)

联合(union)操作与集合的OR操作其实等价的,联合符号有个等价的方法,union()。

>>> s1=set('begin')
>>> s2=set('man')
>>> s3=s1|s2
>>> s3
set(['a', 'b', 'e', 'g', 'i', 'm', 'n'])

5、交集(&)

与集合AND等价,交集符号的等价方法是intersection()

>>> s1&s2
set(['n'])
>>> s1.intersection(s2)
set(['n'])

6、查补(-)
等价方法是difference()

>>> s1-s2  # s1 - (s1 & s2)
set(['i', 'b', 'e', 'g'])
>>> s1.difference(s2)
set(['i', 'b', 'e', 'g'])

7、对称差分(^)

对称差分是集合的XOR(‘异或’),取得的元素属于s1,s2但不同时属于s1和s2.其等价方法symmetric_difference()

>>> s1^s2   #(s1 U s2)-(s1  & s2)
set(['a', 'b', 'e', 'g', 'i', 'm'])
>>> s1.symmetric_difference(s2)
set(['a', 'b', 'e', 'g', 'i', 'm'])

注意:集合之间and,or

>>> s1 and s2  等价于s2
set(['a', 'm', 'n'])   #取 s2
>>> s1 or s2   等价于s1
set(['i', 'b', 'e', 'g', 'n']) #取 s1
>>>

五、集合、列表、元组、字符串之间转换

>>> list(s1)
['i', 'b', 'e', 'g', 'n']
>>> str(s1)
"set(['i', 'b', 'e', 'g', 'n'])"
>>> tuple(s1)
('i', 'b', 'e', 'g', 'n')


***********************************************引用地址忘记了,抱歉**************************************************
posted @ 2016-05-28 00:32  张瑞东  阅读(350)  评论(0编辑  收藏  举报