Python notes(5)-set

set类型和dict类型一样,用list初始化(用来初始化的list中的元素要求全为不可变元素),set也是一组key的集合,但是set不能储存value。同时,由于key的不重复性,set会自动过滤掉重复的输入(再也不用担心重复字符串过滤了)。

通过add()可以添加key到set中,重复添加会被自动过滤。

通过remove(key)方法可以删除key

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作(这个舒服,C++里求交集并集简直恶心):

>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}

与dict类型要求一样,key的值必须为可hash的不可变值,所以输入为二维list是行不通的

tuple类型由于也是不可变对象,所以可以放入set中,如:

>>> s=(1,2,3)
>>> text=set(s)
>>> text
{1, 2, 3}
>>> d=(2,3,4)
>>> text.add(d)
>>> text
{1, 2, 3, (2, 3, 4)}

注:在tuple中放list的骚操作在set中不被允许。