#-*- coding:UTF-8 -*-
#set 和dict类似,也是一组key的组合,但不存储value,key不能重复,
#要创建一个set,需要提供一个list作为输入集合
s=set([1,2,3])
print s
#set([1, 2, 3])
s=set([1,1,2,2,3,3])
print s
#set([1, 2, 3]) 重复元素自动被过滤
#通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果
s.add(4)
print s
#set([1, 2, 3, 4])
s.add(4)
print s
#同样输出set([1, 2, 3, 4])
#通过remove(key) 删除元素
s.remove(4)
print s
#set([1, 2, 3])
#set 可以看成数学意义上的无序和无重复元素的集合,因此两个set可以做数学意义上的交集和并集操作
s1=set([1,2,3])
s2=set([2,3,4])
print s1&s2
#set([2, 3])
print s1|s2
#set([1, 2, 3, 4])
a=set('abrcd')
b=set('alczm')
#a中存在b中不存在
print a-b
#set(['r', 'b', 'd'])
#letters in a or b but not both
print a^b
#set(['b', 'd', 'm', 'l', 'r', 'z'])
a={x for x in 'abracadabra' if x not in 'abc'}
print a
#set(['r', 'd'])
set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。
#把list放入set发现报错:
a=set([1,2,3,[1,2,3]])
print a
#报错TypeError: unhashable type: 'list'