集合类型 set  frozenset

  赋值及去重

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

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

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

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

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

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

  交、并、差集运算

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

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

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

  增、删操作

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

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

转载于:https://www.cnblogs.com/feeland/p/4367242.html

Python学习(四)数据结构 —— set frozenset相关推荐

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

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

  2. (零基础)入门python学习四步骤,附上Python全栈学习路线大刚!

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:python学习教程 ( 想要学习Python?Pyt ...

  3. JAYのpython学习笔记——数据结构之列表

    python的数据结构分为好几种,包括列表(包含多维列表).元组.集合.字典. 在本单元,我们主要学习列表和多维列表. 列表可以存储任意大小的数据集合 需要区别的是,在其他的设计语言中,会用到数组来存 ...

  4. Python学习四: 连接数据库 与 数据清理

    连接数据库 准备工作 楼主这里用的一个轻量级关系型数据库,MySQL (这里楼主安装MySQL的时候遇到了一个小问题,没有兼容服务器,根据这个帖子可以解决这个问题  分享 | 安装 mysql 报错 ...

  5. Python学习:数据结构

    本文来自:入门指南 开胃菜参考:开胃菜 使用Python解释器:使用Python解释器 本文对Python的简介:Python简介 Python流程介绍:深入Python流程 目录: 目录: 5. 数 ...

  6. Python学习—基础数据结构之列表

    基本数据结构之列表 列表list是一种有序的集合,可以随时添加和删除其中的元素.与c.java中的数组有相似之处,但是c.java中的数组必须存放同一类型的元素,而在python的列表中,存放的元素可 ...

  7. python学习四十四天(前端之HTML标签)

    今日主要内容: web标准 浏览器内核 HTML介绍,规范,结构详解 字体标签 排版标签 超链接 图片标签 列表标签 <ul>.<ol>.<dl> 表格标签 < ...

  8. Python学习(四)后端开发框架django

    常见python web开发框架: web.py Django Pylons Tornado Bottle django菜鸟教程 一.django项目创建与启动 1.安装django pip inst ...

  9. python的基本数据结构_Python学习笔记——基本数据结构

    列表list List是python的一个内置动态数组对象,它的基本使用方式如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] print 'I ...

  10. python科学计数法转换_对比Python学习Go 基本数据结构

    公众号文章不方便更新,可关注底部「阅读原文」博客,文章随时更新. 本篇是「对比 Python 学习 Go」[1] 系列的第三篇,本篇文章我们来看下 Go 的基本数据结构.Go 的环境搭建,可参考之前的 ...

最新文章

  1. 利用python进行数据分析 英文-如何学习和评价《利用python进行数据分析》这本书?...
  2. 走出去广东谋定国际丰收节贸易会-林裕豪:从玉农业抓手
  3. atomic原子类实现机制_Java并发包-atomic包-让您彻底掌握AtomicInteger源码
  4. python idle怎么用_python的idle如何使用
  5. 夫妻两一个两年内3张卡9次逾期,一人4次,还能办理房贷吗?
  6. tasker使用手册_如何开始使用Tasker调整Android手机
  7. C#LeetCode刷题之#447-回旋镖的数量(Number of Boomerangs)
  8. stm32实验报告心得体会_STM32实验报告
  9. Netty文章目录汇总
  10. cmos和ttl_TTL和CMOS的区别详解
  11. 小象学院知识图谱学习笔记(一)
  12. 手机qq如何绑定qq邮箱服务器,iphone怎么绑定qq邮箱
  13. 外星人 Alienware x15 R2 评测
  14. python能做ppt吗_python可以写PPT吗
  15. python基础选择题库_智慧树题库Python基础期末答案2020年免费
  16. batchsize和learning rate的影响
  17. 同步发电机转子的转动惯量与运动方程(二) 同步发电机的转子运动方程
  18. 转伟大诗人舒婷的 致橡树
  19. apt upgrade与 apt dist-upgrade的区别
  20. 现代时序硬布线控制器状态机设计

热门文章

  1. Silverlight+WCF 新手实例 象棋 该谁下棋-B下A停(三十)
  2. kafka环境安装及简单使用(单机版)
  3. VS集成opencv编译C++项目遇到的问题
  4. 阿里云Ubuntu 14.04 + Nginx + let's encrypt 搭建https访问
  5. div嵌套div的居中问题
  6. HDU-2612 Find a way
  7. Codeforces 432E Square Tiling(结构体+贪婪)
  8. Discuz! X3.2新增管理员无法登录后台的解决办法
  9. seo策略从5方面下手
  10. [Linux网络编程学习笔记]套接字地址结构