集合set,是无序的、不重复的,不能进行索引和切片,但是非常适用于逻辑运算。

  一、set创建

  set可以直接创建,也可以通过列表、字符串、字典等转换。

s = set('gieerl')
print(s)    #{'g', 'e', 'i', 'l', 'r'}

s = set(['df',3,3,'df'])
print(s)    #{3, 'df'}

li = ['df',3,3,'df']
s = set(li)
print(s)    #{3, 'df'}

d = {'1':'d','1':'d','2':'d'}
s = set(d.items())
print(s)    #{('2', 'd'), ('1', 'd')}

  二、set添加元素

  set.add(values)  将values作为一个整体添加

  set.update(values)  将values的每一个元素分别添加

s = set('gieerl')
print(s)    #{'g', 'e', 'i', 'l', 'r'}
s.add('boy')
print(s)    #{'boy', 'e', 'r', 'g', 'l', 'i'}
s.update('boy')
print(s)    #{'b', 'g', 'r', 'l', 'y', 'o', 'boy', 'i', 'e'}

  三、set删除元素

  set.remove(values)  删除set中的values,values不存在时报错。

  set.clear()  删除set中的全部元素,set()保留。

s = set('gieerl')
print(s)    #{'g', 'e', 'i', 'l', 'r'}
s.remove('e')
print(s)    #{'r', 'g', 'i', 'l'}
# s.remove('a')
# print(s)    #{'r', 'g', 'i', 'l'}   #报错
s.clear()
print(s)    #set()

  四、set元素逻辑运算

  set集合进行与、或、差等运算非常方便。

s1 = set('abcd')
print('s1:{}'.format(s1))   #s1:{'c', 'd', 'b', 'a'}
s2 = set('cdef')
print('s2:{}'.format(s2))   #s2:{'c', 'd', 'e', 'f'}

#   & 与
print('s1&s2:{}'.format(s1&s2)) #s1&s2:{'c', 'd'}
#   |或
print('s1|s2:{}'.format(s1|s2)) #s1|s2:{'c', 'b', 'e', 'f', 'd', 'a'}
#   -差
print('s1-s2:{}'.format(s1-s2)) #s1-s2:{'b', 'a'}
print('s2-s1:{}'.format(s2-s1)) #s2-s1:{'e', 'f'}