Bootstrap
集合是0个或多个对象引用的无序组合,这些对象引用所引用的对象都是可哈希运算的。集合是可变的,因此可以很容易地添加或移除数据项,但由于其中的项是无序的,因此,没有索引位置的概念,也不能分片或按步距分片。下面看一下集合的创建和常用方法,以及集合间的比较方法。

1、创建set

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

ps. 集合转成列表:

lst=list(s)

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

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

不可变集合创建: >>> t=frozenset('python') >>> t frozenset({'p', 'y', 't', 'h', 'o', 'n'})

2、集合常用的方法

1)add

eg.

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

2)update

eg.

>>>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 --移除末尾元素并把移除的元素并返回该元素

eg.

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

4)remove

eg.

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

5)discard

eg.

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

6)clear --清除集合中所有元素

eg.

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

3、集合间比较方法

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

eg.

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

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

eg.

>>> 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)判断一个集合是否是另一个集合的子集

eg.

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

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

eg.

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

5)取两个集合的并集

eg.

>>> 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)取两个集合的交集

eg.

>>> 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)取一个集合比另一个集合多的元素

eg.

>>> 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)取两个集合中各自独有的元素

eg.

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