集合set
集合set
集合是把不同的元素组成在一起实现集合。Set可以实现去重的功能,但其内容是无序的。查看时只能用遍历和迭代器查询内容。其是Python的基本数据类型。
一、 集合的创建
集合里的值是可哈希的(也就是不可变的),可以是整型,字符串,元组,但不可以是列表和字典。
s=set('tom jim') #创建集合
print(s) #{'i', 'o', 't', 'j', ' ', 'm'}
li=['t','o','m','jim'] #创建列表
s1=set(li) #将列表转换成集合
print(s1) # {'t', 'o', 'm', 'jim'}
print('ji'in s1) # False
print('jim' in s1) # True
二、 集合的操作
1. In
s=set('tom jim') #创建集合
print('t' in s) #true
2. 遍历
s=set('tom jim') #创建集合
for i in s:
print(i)
3. 添加
s.add('uu') #将引号内的元素当成一个整体添加一个元素
print('s=',s) #s= {'t', 'j',
'i', ' ', 'uu', 'm', 'o'}
s.update('uuabs') #将update内的元素当成序列添加多个元素
print('s=',s) # s= {'j', 't', ' ', 'b', 'i', 's', 'a', 'm', 'o', 'u'}
s.update(['uua','bs']) #将update内的列表当成序列添加多个元素
print('s=',s) #s= {'i', 'bs', 't', 'j', 'o', 'uua', ' ', 'm'}
4. 删除
1)remove
s=set('tom jim') #创建集合
print(s) #{'i',
'o', 't', 'j', ' ', 'm'}
s.remove('o') #删除元素‘o’
print(s) # {'m', ' ', 'i', 't', 'j'}
2).pop
s=set('tom jim') #创建集合
print(s) #{'i',
'o', 't', 'j', ' ', 'm'}
s.pop() #随机删除集合内的一个元素
print('s2=',s) # s2= {'t', 'm',
'j', ' '}
3) clear
s=set('tom jim') #创建集合
print(s) #{'i',
'o', 't', 'j', ' ', 'm'}
s.clear() #清空集合s内的元素。不等同于删除
print(s) # set()
4) del
s=set('tom jim') #创建集合
print(s) #{'i',
'o', 't', 'j', ' ', 'm'}
del s #删除集合s
print(s) # 报错NameError: name 's' is not defined
5.集合运算
1)交集
a=set([1,2,3,4,5])
b=set([4,5,6,7,8])
print(a.intersection(b)) #{4,5}
print(a & b ) #{4,5}
2) 并集
a=set([1,2,3,4,5])
b=set([4,5,6,7,8])
print(a.union(b)) #{1,2,3,4,5,6,7,8}
print(a | b) #{1,2,3,4,5,6,7,8}
3) 差集
a=set([1,2,3,4,5])
b=set([4,5,6,7,8])
print(a.defference(b)) #a集合中有的而b集合中没有{1,2,3}
print(a - b) #a集合中有的而b集合中没有{1,2,3}
print(b.defference(a)) # b集合中有的而a集合中没有{6,7,8}
print(b – a ) # b集合中有的而a集合中没有{6,7,8}
print(a.symmetric_defference(b)) #对称差集,{1,2,3,6,7,8}
print(a ^ b ) #对称差集,{1,2,3,6,7,8}
4) 父集(超集)
a=set([1,2,3,4,5])
b=set([4,5,6,7,8])
print(a.issuperset(b)) #a是否完全包含b,结果为false
print(a > b ) #a是否完全包含b,结果为false
5) 子集
a=set([1,2,3,4,5])
b=set([4,5,6,7,8])
print(a.issub(b)) #a是否是b的子集,结果为false
print(a < b ) #a是否是b的子集,结果为false