集合
字典中,用花括号括起来,并且有一定的对应关系,则它就是字典。
但是如果用花括号括起来但是没有对应关系,那么它就是一个集合。
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 "
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 "
num3.add(0)
AttributeError: 'frozenset' object has noattribute 'add'