概念

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

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

集合分为可变集合和非可变集合: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:集合类型的更多相关文章

  1. Python集合类型的操作与应用

    Python集合类型的操作与应用 一.Python集合类型 Python中的集合类型是一个包含0个或多个数据项的无序的.不重复的数据组合,其中,元素类型只能是固定数据类型,如整数.浮点数.字符串.元组 ...

  2. 代码与图详解性能之Python集合类型(list tuple dict set generator)

    Python内嵌的集合类型有list.tuple.set.dict. 列表list:看似数组,但比数组强大,支持索引.切片.查找.增加等功能. 元组tuple:功能跟list差不多,但一旦生成,长度及 ...

  3. python集合类型

    集合类型简介 集合也是容器,其内元素都是无序.唯一.不可变的.它常用来做成员测试.移除重复数据.数据计算(比如交集.并集.差集). 集合Set是dict的无value版.集合也使用大括号包围: > ...

  4. 遇见Python集合类型

    Python目前有两种内置集合类型,set和frozenset. Ⅰ.两者区别 set是可变的,没有哈希值,其内容可以使用add()和remove()这样的方法来改变,所以不能被用作字典的键或其他集合 ...

  5. python集合类型set

    set 类型的简单粗暴取出并集合交集  |   & li=[11,22,33] n_li=[44,55] b= (list(set(li)&set(n_li))) b2=set(li) ...

  6. 《Python核心编程》 第七章 映射和集合类型 - 习题

    课后习题 7–1. 字典方法.哪个字典方法可以用来把两个字典合并到一起? 答: dict1 = {' :' python' } dict2 = {' :"hello" } dict ...

  7. python set type 集合类型的数据介绍 (set frozenset)

      python支持数学中的集合概念,如:通过in,not in 可以检查某元素是否在,不在集合中. python有两种集合类型,set(可以变的,不能哈希,不能用作字典的key),frozenset ...

  8. Python核心编程(第七章)--映像和集合类型

    字典:它是一个容器类型,能存储任意个数的Python对象,也包括其他容器类型,Python的字典是作为可变的哈希表实现的 映像类型中的数据是无序排列的   可以用工厂方法dict()来创建字典,也可以 ...

  9. Python基础-字符串、集合类型、判断、深拷贝与浅拷贝、文件读写

    字符串 1.定义三个变量: 2.交换两个变量值 1)引入第三个变量: 2)Python引入第三方变量: 3)不引入第三方变量: 3. isalpha 是否是汉字或字母 4.Isalnum  是否是汉字 ...

  10. 第二百九十九节,python操作redis缓存-SortSet有序集合类型,可以理解为有序列表

    python操作redis缓存-SortSet有序集合类型,可以理解为有序列表 有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值, ...

随机推荐

  1. php 扩展引入

    继承引入参数 <?php class A { private $name; private $age; private $time; public function __construct($n ...

  2. 「题解」「CF850A」Five Dimensional Points

    题目 点这里 题解 本题暴力可过,细节不必多说. 这里我主要是说明一下为什么当 \(n>11\) 时可以直接输出 \(0\) . 首先,思考二维空间中,我们能保证最多能同时存在多少点,而还有好点 ...

  3. Virtual Judge POJ 3278 Catch That Cow

    #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #inclu ...

  4. 路飞-Redis的使用,登录注册接口

    复习 """ 1.git项目开发 提供公钥成为开发者.copy项目.开发项目 先commit.再pull(可能出现冲突).最后push 特殊功能可以新建dev的子分支进行 ...

  5. 题解【2.23考试T3】val

    3. val[题目描述] 这是一道传统题,源代码的文件名为 val.cpp/c/pas. 有一个值初始为 0,接下来 n 次你可以令其在之前基础上+2 或+1 或-1.你需要保证,这个值在整个过程中达 ...

  6. Ztree使用教程

    这两天项目需要写一个树形帮助,学习了我们项目组的老师的Ztree的树的写法,实现了这个帮助,下面来总结一下Ztree的用法. (也是参考的一篇csdn上的博客了) zTree 是一个依靠 jQuery ...

  7. MySQL学习(八)删除表数据

    表空洞的产生 删除某个行数据 或删除某个页     如下图所示,这个删除过程只是标记了某行的位置为删除,假如此时在300与600之间插入了一行数据,那么 同理,当删除某个页时,该页就会被复用.所以当删 ...

  8. SpringBoot 各层之间的关系

    SpringBoot 各层之间的关系 SpringBoot 分为四层:controller层.service层.dao层.entity层.  entity层:和 model 层一样,存放的是实体类,属 ...

  9. (c#)奇数值单元格的数量

    题目 解

  10. Oracle创表操作记录

    Oracle表操作 --主键,复合主键 create table example (id number primary key, name varchar2(20)); create table ex ...