数据类型-集合
用列表求交集
>>> iphone7=['alex','rain','jack','old_driver']
>>> iphone8=['alex','shan','jack','old_boy']
>>> both_list=[]
>>> for name in iphone8: #循环iphone8
... if name in iphone7: #判断name是否在iphone8里
... both_list.append(name) #如果有就加入到 both_list 列表里
... print(both_list)
...
['alex']
['alex', 'jack']
集合是一个无序的,不重复的数据组合,它的作用如下:
去重,把一个列表变成集合,就自动去重了。
关系测试,测试两组数据之前的交集、差集、并集等关系。
>>> s #添加一个集合
{1, 2, 3, 4, 6}
>>> l = [1,2,3,4,5,2,3]
>>> set(l) #将列表l 转换成集合
{1, 2, 3, 4, 5}
可以将列表、元组转成集合。
>>> s.add(6) #增加一个6
>> s.pop() #pop 随机删
1
>>> s.remove(6) #指定删除6
>>> s
{2, 3, 4}
>>> s.discard(6) #指定删除6 与remove的区别是 discard 不存在数据时也不报错。
>>> s.update([1,2,3,4,5]) #update 可以同时添加多个数据 add只能添加一个
>>> s
{1, 2, 3, 4, 5}
>>> s.clear() #clear 清空数据
>>> s
set()
>>> iphone7={'alex','rain','jack','old_driver'}
>>> iphone8={'alex','shan','jack','old_boy'}
>>> iphone7.intersection(iphone8) #intersection 求交集
{'alex', 'jack'}
>>> iphone7 & iphone8 # & 求交集
{'alex', 'jack'}
>>> iphone7.difference(iphone8) #求差集
{'rain', 'old_driver'}
>>> iphone7 - iphone8 #求差集
{'rain', 'old_driver'}
>>> iphone8.union(iphone7) #求并集
{'shan', 'rain', 'old_driver', 'old_boy', 'jack', 'alex'}
>>> iphone8 | iphone7 #求并集
{'shan', 'rain', 'old_driver', 'old_boy', 'jack', 'alex'}
>>> iphone8.symmetric_difference(iphone7) #对称差集
{'shan', 'old_boy', 'rain', 'old_driver'}
>>> iphone8 ^ iphone7 #对称差集
{'shan', 'old_boy', 'rain', 'old_driver'}
>>> s = {1,2,3,4}
>>> s2 = { 2,3,5,6,1,4}
>>> s.issubset(s2) #判断 s 是不是s2的子集 等同于 a<=b
True
>>> s.isdisjoint(s) #判断两个集合是不是不相交
False
>>> s2.issuperset(s) #判断s2是不是s的父集
True
>>> s
{1, 2, 3, 4}
>>> s2
{1, 2, 3, 4, 5, 6}
>>> s.add(-1)
>>> s.add(-2)
>>> s.difference(s2)
{-1, -2}
>>> s.difference_update(s2) #把差集的结果赋给s
>>> s
{-1, -2}