首页 > 编程语言 > 详细

Python:集合类型

时间:2020-01-21 17:20:55      阅读:60      评论:0      收藏:0      [点我收藏+]

概念

无序的,不可随机访问的,不可重复的元素集合

与数学中集合的概念类似,可对其进行相关的运算

集合分为可变集合和非可变集合:setfrozenset

定义

可变集合

s = {x1, x2, ......}

s = set(iterable)

集合推导式:类似列表推导式

不可变集合

fs = frozenset(iterable):iterable如果是dict的话,只会提取key作为set的元素

同样也可以使用集合推导式:fs = frozen(......)

注意

  1. 创建一个空集合时,需要使用set()或者frozen(),不能使用s={},否则创建的是一个空字典
  2. 集合中的元素,必须是可哈希的值(暂时理解为不可变类型)
  3. 如果集合中的元素值出现重复,则会被合并为一个

3 常用操作

单一集合操作

新增

s.add(x)

删除

s.remove(ele):指定删除某个元素,如果没找到,则报错
s.discard(ele):指定删除集合中的一个元素,如果没有这个元素,则什么也不干
s.pop(ele):随机删除并返回集合中的元素,若集合为空,则返回一个错误
s.clear():清空一个集合中的所有元素

修改

元素为不可变类型,不能修改

查询

无法通过索引或者key进行查询

  1. 通过 for in 进行查询
  2. 通过迭代器进行访问

不可变集合

不能进行增删改

可以通过for in和迭代器进行访问

集合之间的操作

可变集合与不可变集合混合运算,返回结果类型以运算符左侧为主!

交集

  • s1.intersection(Iterable)
    • 注意:
      • 字符串:之判定字符串中的非数字
      • 字典:只判定 key
  • s1 & s2
  • intersection_update(...)
    • 交集计算完毕后,会再次赋值给原对象
    • 会更改原对象,所以只适用于可变集合

并集

  • union():返回集合的并集
  • s1 | s2:符号写法
  • update():更新并集

差集

  • difference()
  • 使用符号 -
  • difference_update()

判定

  • isdisjoint():两个集合是否相交
  • issuperset():一个集合是否包含另一个集合
  • issubset():一个集合包含于另一个集合

补充

。。。。。。其它运算待整理

Python:集合类型

原文:https://www.cnblogs.com/wbyixx/p/12222353.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!