一、set
特点:
set是一个无序且不重复的元素集合访问速度快;天生解决元素重复问题
方法:
初始化
>>> s1 = set()
>>> print(type(s1))
add() 增加元素
>>> s1.add('tom')
>>> print(s1)
{'tom'}
clear() 清空
>>> s1.clear()
>>> print(s1)
set()
差集
循环老的序列,只要某一个元素在原序列,有就删除。对比自己没有的
difference() 对比,显示不同的部分
Return the difference of two or more sets as a new set.
返回不同的部分生成新的集合。
>>> s1
{1, 2, 3, 4, 'haha'}
>>> s2 = s1.difference(['haha'])
>>> s2
{1, 2, 3, 4}
difference_update() 对比,并将修改原集合,不生成新的集合
>>> s1
{1, 2, 3, 4, 'haha'}
>>> s3 = s1.difference_update(['haha'])
>>> s1
{1, 2, 3, 4}
>>> s3
>>>
difference和differentce_update的区别:
一个是生成新的set
删除当前set中包含在new set里的元素
dicard() 移除
>>> s1.discard(1)
>>> s1
{2, 3, 4}
intersection() 取交集,生成新set
>>> s1
{1, 2, 3, 4, 'tom', 'cow', 'cat'}
>>> s3 = s1.intersection(['tom','cat'])
>>> s3
{'cat', 'tom'}
intersetion_update() 取交集,修改原来set
>>> s3 = s1.intersection_update(['tom','cat'])
>>> s3 #说明没有生成新的set
>>> s1
{'cat', 'tom'} #修改原set
isdisjonint() 如果没有交集,返回True
>>> s1
{'tom', 1, 2, 3, 4, 'cat', 'pig'}
>>> s3
{'haha'}
>>> s1.isdisjoint(s3)
True
issubset() 是否是子集
>>> s1
{'tom', 1, 2, 3, 4, 'cat', 'pig'}
>>> s2
{'tom', 3}
>>> s2.issubset(s1)
True
s1.issuperset(s2) 是否是父集;s2是否是s1的子集,如果是则返回True,否则返回False
>>> s1
{'tom', 1, 2, 3, 4, 'cat', 'pig'}
>>> s2
{'tom', 3}
>>> s1.issuperset(s2)
True
pop() 移除;移除的同时并获取这个值
>>> s1
{2, 3, 4, 'cat', 'pig'}
>>> ret = s1.pop()
>>> ret
2
{3, 4, 'cat', 'pig'}
remove() 指定移除;没有返回值
>>> s1.remove('pig')
>>> s1
{3, 4, 'cat'}
对称差
循环两次,对比前后set的不同。
symmetric_difference() 差集,并获取新对象
>>> s1
{3, 4, 'cat'}
&g