您的位置:首页 > 编程语言 > Python开发

python常用数据类型操作-集合

2018-03-26 15:06 369 查看
该总结来源于网络王顺子的课程课件
 

1、概念

无序的, 不可随机访问的, 不可重复的元素集合
与数学中集合的概念类似,可对其进行交、并、差、补等逻辑运算
分为可变集合和非可变集合
      set为可变集合,可进行增,删,改
      frozenset为不可变集合,创建好之后, 无法增删改
 

2、定义

可变集合set
      s ={1,2,3,4}
      s =set(iterable)
           其中iterable可以是字符串、列表、元组、字典等
           但是为dict时,只会获取提Key作为set的元素
      集合推导式
           s= set(x**2 for x in range(1, 10) if x % 2 == 0)
           s= {推导式}
 
不可变集合frozenset
      fs =frozenset(iterable)
           其中iterable可以是字符串、列表、元组、字典等
           但是为dict时,只会获取提Key作为set的元素
      集合推导式
            s = frozenset(x**2 for x in range(1, 10) if x% 2 == 0)
 
注意
      1. 创建一个空集合时, 需要使用set() 或者 frozenset(), 不能使用 s = {}会被识别成为字典
      2. 集合中的元素, 必须是可哈希的值
           如果一个对象在自己的生命周期中有一哈希值(hash value)是不可改变的,那么它就是可哈希的(hashable)的
           暂时理解为 不可变类型
      3. 如果集合中的元素值出现重复, 则会被合并为1个
 

3、常用操作

3.1 单一集合操作

可变集合

      s.add(element)
      注意:必须保证添加的元素是可哈希的值

      s.remove(element)
           指定删除set对象中的一个元素
           如果集合中没有这个元素,则返回一个错误
      s.discard(element)
           指定删除集合中的一个元素
           若没有这个元素,则do nothing
      s.pop(element)
           随机删除并返回一个集合中的元素
           若集合为空,则返回一个错误
      s.clear()
           清空一个集合中的所有元素

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

      无法通过索引或key进行查询
      1. 通过 for in 进行遍历
      2. 通过迭代器进行访问
 
不可变集合
不能增删改

      1. 通过 for in 进行遍历
      2. 通过迭代器进行访问
 

3.2集合之间操作

交集
      intersection(Iterable)
           字符串,只判定字符串中的非数字
           列表
           元组
           字典,值判定key
           集合
           ...
      逻辑与 '&'
      intersection_update(…)
           交集计算完毕后, 会再次赋值给原对象,会更改原对象,所以, 只适用于可变集合
并集
      union(),返回并集
      逻辑或 '|',返回并集
      update(),更新并集
差集
      difference()
      算术运算符减 ‘-‘
      difference_update()
判定
      isdisjoint()两个集合不相交
      issuperset()一个集合包含另一个集合
      issubset()一个集合包含于另一个集合
 
注意
      可变与不可变集合混合运算, 返回结果类型以运算符左侧为主
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据类型 集合