Python 集合(set)常用操作方法

Python 中的集合(set)是一个无序的、不包含重复元素的集合类型。集合非常适合于进行成员关系测试、去除重复元素以及数学上的运算,如交集、并集、差集等。

1、创建set

使用 {} 或 set() 创建一个新的集合。

>>> s={1,"python"}
>>> s=set("python") or s=set([1,"python"])

1)集合转成列表

>>> lst=list(s)

2)列表转成集合(可能会删除列表中重复元素)

>>> s=set([1,"python"])

3)不可变集合创建

>>> t=frozenset('python')
>>> t
frozenset({'p', 'y', 't', 'h', 'o', 'n'})

2、集合常用的方法

1)add

add()方法用于添加单个元素。

>>> b=set()
>>> b.add("python")

2)update

update()方法用于更新集合,可以添加多个元素。

>>> seta={"wiki","twitter","google","facebook"}
>>> setb={"python",(1,2,3)}
>>> seta.update(b)
>>> seta
>>> set(["wiki","twitter","google","python","facebook",(1,2,3)])

3)pop 

移除末尾元素并把移除的元素并返回该元素。

>>>seta={"wiki","twitter","google","facebook"}
>>>seta.pop()

4)remove

remove() 方法删除指定元素,如果元素不存在会引发 KeyError

>>>seta={"wiki","twitter","google","facebook"}
>>>seta.remove("wiki")#删除的元素不存在会报错

5)discard

discard() 方法也是用来删除集合中的元素,但如果元素不存在,它不会引发错误。

>>>seta={"wiki","twitter","google","facebook"}
>>>seta.discard("wiki")
>>>seta.discard("wiki")#删除的元素不存在,也不会报错

6)clear 

清除集合中所有元素

>>>seta={"wiki","twitter","google","facebook"}
>>>seta.clear()
>>>seta
set([])

3、集合间比较方法

1)判断一个元素是不是在集合中

>>> s = set([1,2,3,4])
>>> 1 in s
True
>>> 5 in s
False

2)判断两个集合是否相等

>>> a = set([1,2,3,4,5])
>>> b = set([1,2,3,4,5])
>>> a ==b
True
>>>b.pop()
1
>>>b
set([2,3,4,5])
>>>a==b
False

3)判断一个集合是否是另一个集合的子集

>>> a = set([1,2,3,4])
>>> b = set([1,2,3,4,5])
>>>a < b
True
>>>a.issubset(b)
True

4)判断一个集合是否是另一个集合的超集

>>> a = set([1,2,3,4])
>>> b = set([1,2,3,4,5])
>>>b > a
True
>>>b.issuperset(a)
True

5)取两个集合的并集

>>> a = set([0,1,3,4,6])
>>> b = set([1,2,3,4,5])
>>> a | b
set([0,1,2,3,4,5,6])
>>> a.union(b)
set([0,1,2,3,4,5,6])

6)取两个集合的交集

>>> a = set([0,1,3,4,6])
>>> b = set([1,2,3,4,5])
>>> a & b
set([1,3,4])
>>> a.intersection(b)
set([1,3,4])

7)取一个集合比另一个集合多的元素

>>> a = set([0,1,3,4,6])
>>> b = set([1,2,3,4,5])
>>> a - b
set([0,6])
>>> a.difference(b)
set([0,6])

8)取两个集合中各自独有的元素

>>> a = set([0,1,3,4,6])
>>> b = set([1,2,3,4,5])
>>> a.symmetric_difference(b)
set([0,6,2,5])

推荐阅读
cjavapy编程之路首页