一. 基本用法

set类似于list, 区别在于set不包含重复的值。这在很多情况下非常有用。例如你可能想检查列表中是否包含重复的元素, 你有两个选择, 第一个需要使用for循环, 就像这样:

some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n']duplicates = []
for value in some_list:if some_list.count(value) > 1:if value not in duplicates:duplicates.append(value)print(duplicates)# 输出: ['b', 'n']

但还有一种更简单更优雅的解决方案, 那就是使用set, 如:

some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n']
duplicates = set([x for x in some_list if some_list.count(x) > 1])
print(duplicates)

你也可以用符号{ }来创建集合, 如:

a_set = {‘red’, ‘blue’, ‘green’}
print(type(a_set))

输出:

二. 集合操作

1. 交集

对比两个集合的交集(两个集合中都有的数据), 如下:

valid = set(['yellow', 'red', 'blue', 'green', 'black'])
input_set = set(['red', 'brown'])
print(input_set.intersection(valid))# 输出: set(['red'])

2. 差集

你可以用差集(difference)找出无效的数据, 相当于用一个集合减去另一个集合的数据, 例如:

valid = set(['yellow', 'red', 'blue', 'green', 'black'])
input_set = set(['red', 'brown'])
print(input_set.difference(valid))# 输出: set(['brown'])

参考文献

  1. Python进阶

Python进阶读书笔记之(四) set集合相关推荐

  1. python进阶学习笔记(四)--多线程thread

    在使用多线程之前,我们首页要理解什么是进程和线程. 什么是进程? 计算机程序只不过是磁盘中可执行的,二进制(或其它类型)的数据.它们只有在被读取到内存中,被操作系统调用的时候才开始它们的生命期.进程( ...

  2. 《可爱的Python》读书笔记(四)

    不断否定自己,但要坚持最初的意愿. 小白已经实现了"将光盘内容索引存储为硬盘上的*.cdc文本文件",并获得了命令行工具样的程序,可以通过命令行调用python pycdc.pyw ...

  3. 《Linux内核设计与实现》 第八周读书笔记 第四章 进程调度

    20135307 张嘉琪 第八周读书笔记 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有 ...

  4. JavaScript设计模式读书笔记(四)= 技巧型设计模式

    全系列目录 JavaScript设计模式读书笔记(一)=> 创建型设计模式 JavaScript设计模式读书笔记(二)=> 结构型设计模式 JavaScript设计模式读书笔记(三)=&g ...

  5. 读书笔记 第四章 创造力

    读书笔记 第四章 创造力 创造性工程师的特点 创造性工程师一般具有以下特点: 1.坚持不懈 寻找问题的创造性解决方案需要不断的努力.在工作中总会遇到各种各样的问题,一个成功的创造性工程师永不会放弃.托 ...

  6. 读书笔记第四讲:《百万级并发商品服务架构解密》丁鸣亮

    本文是读书笔记第四讲:网易考拉海购商品中心2017年商品中心架构,百万级并发商品服务 架构解密,作者:丁鸣亮 文章目录 1.前言:电商平台的商品服务 2.考拉:商品服务的"黑历史" ...

  7. 计算机毕业设计django基于python的读书笔记共享平台

    项目介绍  本论文主要论述了如何使用PYTHON语言开发一个读书笔记共享平台 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述读书笔 ...

  8. 计算机毕业设计django基于python的读书笔记共享平台(源码+系统+mysql数据库+Lw文档)

    项目介绍 本论文主要论述了如何使用PYTHON语言开发一个读书笔记共享平台 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述读书笔记 ...

  9. 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(四):web攻击

    目录 前言 1.urllib2 2.开源web应用安装 3.破解目录和文件位置 4.破解HTML表格认证 结语 前言 <Python黑帽子:黑客与渗透测试编程之道>的读书笔记,会包括书中源 ...

  10. 《零基础入门学习Python》读书笔记

    写在前面 嘻,计划每个月读一本新书,这个月一直在忙考试,都没怎么学编程方面的知识,这是去年假期看的一本书,当时没有做笔记,现在都忘得差不多啦!!,嗯,在这个月的最后一天,写了这篇博客,笔记会陆续的整理 ...

最新文章

  1. OpenCV中的SURF(Speeded-Up Robust Features 加速鲁棒特征)
  2. Kali Linux 安全渗透教程第五更1.4 安装Kali Linux
  3. C#使用sharppcap实现网络抓包-----2
  4. 思科IPS系统的bypass mode
  5. C#基础:理解装箱与拆箱
  6. react usecontext_Vue3原理实战运用,我用40行代码把他装进了React做状态管理
  7. 微信小程序 body属性的问题
  8. 计算机职业英语一级,计算机职业英语一级
  9. 2018-02-03-PY3下经典数据集iris的机器学习算法举例-零基础
  10. 不拆机更换HG255D的U-BOOT并刷OPENWRT
  11. Activiti 工作流表单设计及开发
  12. 菜鸟教程: Linux cat 命令
  13. SC 防火墙防DOS工具机制
  14. setPositiveButton和setNegativeButton的区别
  15. oracle使用dmp文件恢复,dmp文件恢复oracle数据库
  16. android蓝牙a2dp切换歌曲广播,Android蓝牙A2DP连接实现
  17. 计算机技术与软件业余资格测验证书,在大学能否领到网络工程师资格证?网络工程师考核..._出版资格_帮考网...
  18. torch.nn.modules.activation.ReLU is not a Module subclass
  19. 功能强大的离线浏览器(1)
  20. 当当API接口-item_get - 获得dangdang商品详情

热门文章

  1. java axis2 jar包下载_axis2所有jar包
  2. ORACLE SQL 优化的若干方法(详细)
  3. vc 星号密码查看方法
  4. Linux服务器查看Ip地址
  5. Linux通过windows代理上网并安装软件
  6. html去除背景颜色怎么设置,word背景颜色怎么去掉
  7. 代码粘贴至word后,黑色背景处理
  8. 程序员离职原因的最佳回答_转行面试,高情商回答“你为什么要离职?”(建议收藏)...
  9. 考研前辈最后悔的事都有哪些?
  10. 超弦计算机,物理学四大神兽——拉普拉斯妖