美文网首页
Python之路5:集合

Python之路5:集合

作者: 缘小泽 | 来源:发表于2018-03-20 14:53 被阅读0次

集合:无序的不重复的数据集合

作用:

去重
关系测试,测试两组数据之间的交集,差集和并集等关系

特征:

确定性,元素必须可hash
互异性
无序性,集合中的元素没有先后之分

集合的用法:

  • 创建
s = {1,2,3,4}
  • 增加
>>> s.add(1)  // 重复的数据加入不进去
>>> s
{1, 2, 3, 4}
>>> s.add(5) // add 只可添加可 hash 值
>>> s.update([2,3,4,7,8]) // 可以把多个值加入到集合
>>> s
{1, 2, 3, 4, 5, 7, 8}
  • 删除
>>> s.pop()  // 随机删除集合内的值,如果集合为空会报错
1
>>> s.discard(4) // 删除指定的数值,即使集合内没有这个值也不会报错
>>> s.discard(0)
>>> s.clear()  // 清空整个集合
  • 关系测试之交集
>>> s = {1, 2, 3, 4}
>>> s2 = {3, 4, 5, 6}
>>> s.intersection(s2)  // 取 s s2 之间的交集
{3, 4}
>>> s & s2   // 可以用 & 符来提取
{3, 4}
  • 关系测试之差集
>>> s.difference(s2) // s s2 之间的差集并打印只在 s 的值
{1, 2}
>>> s - s2    // 或者用 - 号来提取
{1, 2}
>>> 
>>> s2.difference(s)  // s s2 之间的差集并打印只在 s2 的值
{5, 6}
>>> s2 - s
{5, 6}
  • 关系测试之并集
>>> s.union(s2) // 将 s s2合并,并去掉重复值
{1, 2, 3, 4, 5, 6}
>>> s | s2  // 或者用 | 
{1, 2, 3, 4, 5, 6}
  • 关系测试之对称差集
>>> s.symmetric_difference(s2) // 合并只存在 s s2 中的值
{1, 2, 5, 6}
>>> s ^ s2    // 或者用 ^ 括号
{1, 2, 5, 6}
  • 包含关系
>>> s.isdisjoint(s2) // 判断两个集合是否不相交
False
>>> s2
{3, 4, 5, 6}
>>> s.update([5,6])
>>> s
{1, 2, 3, 4, 5, 6}
>>> s.issuperset(s2) // 判断集合是否包含其他集合,相当于 a >=b
True
>>> s.issubset(s2)  // 判断集合是否被其他集合所包含
False
>>> s2.issubset(s) // s2 被 s所包含,相当于 a <=b
True

相关文章

网友评论

      本文标题:Python之路5:集合

      本文链接:https://www.haomeiwen.com/subject/fphbqftx.html