python基础学习之集合

集合

字典中,用花括号括起来,并且有一定的对应关系,则它就是字典。

但是如果用花括号括起来但是没有对应关系,那么它就是一个集合。

 

1.集合的特点:

(1)在一个集合里,每个数字都是唯一的。集合可以清理掉所有的重复项。

(2)集合是无需的,不支持索引。

 

>>> num = {}

>>> type(num)

>>> num2 = {1,2,3,4}

>>> type(num2)

 

>>> num

{1, 2, 3, 4, 5}

>>> #对集合进行索引是不正确的

>>> num[2]

Traceback (most recent call last):

 File "", line 1, in

   num[2]

TypeError: 'set' object does not supportindexing

>>> set1=set([1,2,3,4,5,5,])

>>> set1

{1, 2, 3, 4, 5}

 

2.消除列表中重复元素。

>>> num1 = [1,2,3,4,5,5,3,2,1,0]

(1)以前的方法:

>>> for each in  num1:

         ifeach not in temp:

                   temp.append(each)

 

                  

>>> temp

[1, 2, 3, 4, 5, 0]

 

(2)有了set,可以这样做:

>>> num1 = list(set(num1))

>>> num1

[0, 1, 2, 3, 4, 5]

>>> #此时先用set(num1)先将列表num1消除重复项,变成集合类型,然后再用list()函数将其转化为列表类型。

>>> #需要注意的是由于集合没有顺序,要消除重复项而且对先后顺序有要求的话,就要注意此时不适用了,例如前者生成的temp是[1, 2, 3, 4, 5, 0],而后者num1生成的是[0, 1, 2, 3, 4, 5]

 

3. 如何访问,更新集合中的值

(1)可以用in  和 not in 来判断是否在集合中的值

>>> num = {1,2,0,4,5}

>>> num

{0, 1, 2, 4, 5}

>>> 1 in num

True

>>> '1' in num

False

 

(2)add()来增添值

>>> num.add(3)

>>> num

{0, 1, 2, 3, 4, 5}

 

(3)remove()来删除值

>>> num.remove(2)

>>> num

{0, 1, 3, 4, 5}

 

4. 不可变集合frozenset

>>> #希望集合不可被随意删除和修改

>>> num3 = frozenset([1,2,3,4,5])

>>> num3

frozenset({1, 2, 3, 4, 5})

>>> num3.add(0)

Traceback (most recent call last):

 File "", line 1, in

   num3.add(0)

AttributeError: 'frozenset' object has noattribute 'add'

 

你可能感兴趣的:(python基础学习)