集合类型 set  frozenset

  赋值及去重

    set 是一个无序不重复元素集,还有个frozenset 类型(顾明思议,就是不可改变元素的集合);

    基本功能包括关系测试和消除重复元素;set支持& | - (交、并、差集) 等数学运算

    set 赋值:非空集合由{}标识,逗号隔开元素; 注意,空集合表示为 set() 而不是 {} (这是dict);python 会对set自动去除重复

 s = {}                       # 注意这是 dict类型
print(type(s))
s = set() # 空集合表示方法
print(type(s))
s = {1,1.0}
print(s) # 输出{1.0},可去重 int float类型不区分,输出float
s = [1,2,1,2,1,1,3]
s = set(s) # 强制转换成 set
print(s) # 同样去重了

    同 list 相似,set 也有简单操作,如下:

 s = {1,2,1,2,1,1,3,0}
print(s,len(s)) # len(s) 返回了set包含元素的个数(去重)
print((1.0 in s),(3 in s),(True in s),(False in s)) # 测试是否包含元素,注意0可以对应False,1可以对应True
print(True not in s)

  交、并、差集运算

    表示法:   &      |       -    ; 分别表示交集、并集、及非(具体意思请百度),无对应结果返回空集合,即 set()   示例如下:

 a = {0,1,2}
b = {1,2,3}
print(a&b) # 交集
print(a|b) # 并集
print(a-b) # a差b
print(b-a) # b差a
a = {0,1,2}
b = {3,4,5}
print(a&b) # set()

    一些函数也可作交、并、差运算,详细参见 python list、set 相关参考

  增、删操作

     s.add(elem) 增加;.remove(elem)  .discard(elem)  .pop() 删除;s.clear() 清空;详见下面实例

 s = {0,1,2}
s.add(4) # .add(elem)
s.add(4.0)
s.add("")
print(s)
s.remove(0) # .remove(elem) 去除现有元素,如不存在,会 raise error
print(s)
# s.remove(0) # 报错
s = {0,1,2}
s.discard(0) # .discard(elem) 去除现有元素,如不存在,不会报错
print(s)
s.discard(4) # 不会报错
s = {"a","b","c"}
print(s.pop(),s) # 删除一个不确定的元素,并 return 该元素,若集合为空,会 raise error
s = {1,2,3}
print(s.pop()) # 数字类型好像每次都会pop出最小的1
s = {1,2,3,"b","c"}
print(s.pop()) # pop出不确定的非数字,或者最小的数字1
s.clear()
print(s) # 清空

Python学习(四)数据结构 —— set frozenset的更多相关文章

  1. python学习4—数据结构之列表、元组与字典

    python学习4—数据结构之列表.元组与字典 列表(list)深灰魔法 1. 连续索引 li = [1,1,[1,["asdsa",4]]] li[2][1][1][0] 2. ...

  2. python学习四(处理数据)

    head first python中的一个数据处理的例子 有四个U10选手的600米成绩,请取出每个选手跑的最快的3个时间.以下是四位选手的9次成绩 James 2-34,3:21,2.34,2.45 ...

  3. 从0开始的Python学习012数据结构&对象与类

    简介 数据结构是处理数据的结构,或者说,他们是用来存储一组相关数据的. 在Python中三种内建的数据结构--列表.元组和字典.学会了使用它们会使编程变得的简单. 列表 list是处理一组有序的数据结 ...

  4. Python学习笔记——数据结构和算法(一)

    1.解压序列赋值给多个变量 任何的序列(或者是可迭代对象)可以通过一个简单的赋值语句解压并赋值给多个变量. 唯一的前提就是变量的数量必须跟序列元素的数量是一样的. >>> data ...

  5. python学习之数据结构

    python的数据很丰富,所以对于数据分析来讲, python是一种最合适的选择 下面讲述一下常见的数据结构,包括栈,队列,元组,字典,集合等,以及对这些数据结构进行操作 #堆栈,后进先出 a=[10 ...

  6. Python学习(四) Python数据类型:序列(重要)

    插播一下,先了解一下Python的数据类型,Python现有的数据类型有好多,最重要的有列表.元组.字典 列表:我觉得可以对应java中的数组 list=['physics', 'chemistry' ...

  7. Python学习(四):模块入门

    1.模块介绍 模块:代码实现的某个功能的集合 模块分类: 自定义模块 内置标准模块 开源模块 模块的常用方法: 是否为主文件:__name__ == '__main__' 如果是直接执行的某程序,那么 ...

  8. Python学习四|变量、对象、引用的介绍

    变量 变量创建:一个变量也就是变量名,就像a,当代码第一次赋值时就创建了它.之后的赋值将会改变已创建的变量名的值,从技术上讲,Python在代码运行之前先检测变量名,可以当成是最初的赋值创建了变量. ...

  9. Python学习笔记——数据结构和算法(二)

    1.字典中一个键映射多个值 可以使用collections中的defaultdict来实现,defalultdict接受list或者set为参数 from collections import def ...

  10. Python学习(四)数据结构(概要)

    Python 数据结构 本章介绍 Python 主要的 built-type(内建数据类型),包括如下: Numeric types          int float Text Sequence ...

随机推荐

  1. [VBA]批量替换PPT里的字体颜色

    不知道为什么计组老师的大量课件字体是伤害视力的亮蓝色……看久了眼睛疼,想把颜色替换成保护视力一点的灰色,但是找了N久也没找到在图形界面上直接操作的方法,于是在MSDN上晃了晃,Google了一下,写了 ...

  2. es6js promise在ie中报错“未定义”

    解决办法,我使用https://cdn.bootcss.com/es6-promise/4.1.1/es6-promise.auto.min.js直接引入在html中,也可以安装相应的babel-po ...

  3. 使用STL sort对字符串按字典序排序

    使用string数组 #include<iostream> #include<string> #include<algorithm> using namespace ...

  4. 解决win10下git闪退

    网上找了很多方法,只有这个是有用的,记录下来. 问题描述 在git官网下载了软件,安装之后,git Bash出现闪退现象,同时在当前文件夹下面会生成一个mintty.exe.stackdump的文件. ...

  5. svn代码同步脚本

    碰到一个需求,主要是2个项目需要用到同一份代码,主要是域名和配置信息不一样,而且要把svn更新的代码同步过去.本来考虑提交时用钩子同步过去,但考虑到同步过去的代码还需要测试,而且另一边代码的时效性不强 ...

  6. Java常用工具类之MD5加密

    package com.wazn.learn.util; import java.security.MessageDigest; /** * MD5加密工具类 * <功能详细描述> * * ...

  7. python笔记11-多线程之Condition(条件变量)

    前言 当小伙伴a在往火锅里面添加鱼丸,这个就是生产者行为:另外一个小伙伴b在吃掉鱼丸就是消费者行为.当火锅里面鱼丸达到一定数量加满后b才能吃,这就是一种条件判断了. 这就是本篇要讲的Condition ...

  8. BZOJ4552 HEOI2016排序

    太棒了!思路很不错. 没想到HEOID1三道线段树. 这题我们可以二分答案,将小于他的在线段树中设成0,大于他的设成1然后模拟操作复杂度O(mlog^2n) By:大奕哥 #include<bi ...

  9. HNOI2012永无乡

    fhq treap+启发式合并,将小的合并到大的上面,复杂度NlogN. 最好的一点是通过dfs将一个子树内的元素转到另一个元素上. By:大奕哥 #include<bits/stdc++.h& ...

  10. 【静态主席树】POJ2104-K-th Number

    求区间第k大.裸线段树. 莫队版本:☆ #include<iostream> #include<cstdio> #include<cstring> #include ...