码迷,mamicode.com
首页 > 编程语言 > 详细

Python -- set

时间:2016-05-28 01:04:30      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

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‘)


***********************************************引用地址忘记了,抱歉**************************************************

Python -- set

标签:

原文地址:http://www.cnblogs.com/ernest-zhang/p/5536606.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!