数据类型-集合

用列表求交集

>>> 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}

原文地址:https://www.cnblogs.com/anzhangjun/p/8364686.html