Python自动化开发从浅入深-语言基础(set)

set的概念有点类似于hash表,它是一个无序但不重复的元素集合。而列表、元祖和字典数据都是可以重复的。

set可以方便的进行求交、差、对称差、并集等计算和比对,这在其他序列操作中则比较复杂 

如图,通过set命令就建立了一个set集合:

     

定义了set,我们就可以进行以下操作:

  • 添加一个元素,如图,添加一个元素7

  • 一次添加多个元素,如图,添加了7,9,11

  • 删除一个元素,如图,将a中的5去掉

  • 求set的长度,如图,求出长度为6

  • 查看某个值是不是另一个set的元素,或不是另一个set的成员。

  • 查看一个set集的所有元素是否在另一个set集中,如图,

  • 求交,如图,2个set的交集为{1,3}。

        

  • set可以去重,如图,将重复的1,2,3,4数字自动去掉。  

     

  • 求差,如图,b-a = {9,10,7}

对称差:b^a , symmetric_difference 去掉了2者都有的元素(与求交相反)。

同步差

求交

  • 求合并union, 如图,b|a,去掉重复的元素,合并为一个set

  • 求一个set是否在另外一个set中,如图,c,d集合在b中。

  • 将一个字符串进行set转换,如图

  • set的copy为浅拷贝,如图

  • pop用来删除set中的一个不确定元素,并且返回它,如图

  • 清空set,如图

时间: 2024-10-12 08:31:33

Python自动化开发从浅入深-语言基础(set)的相关文章

Python自动化开发从浅入深-语言基础(常用模块)

模块就是将一些相似功能的代码集中到一起,通过定义形象的模块名称,以便用户查找和使用. 通常模块分为三种:自定义模块,内置标准模块和开源模块. 自定义模块 和开源模块的使用参考 http://www.cnblogs.com/wupeiqi/articles/4963027.html  python中的一些常用模块包括以下几个: 一.time 和 datetime模块: 用于处理时间和日期的. import time import datetime print(time.clock()) #返回处理

Python自动化开发从浅入深-语言基础(collection)

-- collection是对内置数据类型的一种扩充,其主要扩充类型包括: 1.namedtuple(): 生成可以使用名字来访问元素内容的tuple子类,以增强可读性. def namedtuple(typename, field_names, verbose=False, rename=False): """Returns a new subclass of tuple with named fields. 返回一个新的命名域元组子类,typename为类型名,field

Python自动化开发从浅入深-语言基础(正则表达式)

 正则表达式是处理字符串的强大工具,它通过一定的语法规则查找匹配字符串,并返回自己想获取的字符串值. 即让字符串与某种模式匹配,而获取一个新的序列. 如要使用正则表达式语法,需import re模块,然后使用 r"正则表达式" (解释性正则定义)定义正则规则,也可通过 re.compile(r"正则表达式") (编译性正则定义)进行正则定义,编译性正则定义效率较解释性正则定义要高. 一.正则表达式元字符包括: . ^ $ * + ? { [ ] \ | ( ) 元字

Python自动化开发从浅入深-进阶(script,dom,jquery 基础)

JavaScript (可以对html标签及CSS进行操作) Dom (API,提供找寻html中的标签,以便于使用JS对所找到的标签或CSS进行相应的操作) jQuery (用于将复杂的逻辑和运算封装到一个包中供外部调用) JavaScript: <srcipt>...</script> 存在的形式:文件,块 一般在body的底部书写. --- 声明变量: name = "alex" :(全局变量) var age=18:     (局部变量) --- 数字:

Python自动化开发从浅入深-进阶(socketServer)

socketserver: --- 每一个连接过来都会单独创建一个线程. ---socketserver处理的线程数目与服务器资源配置有关 socketserver有四个基本的类: --- TCPServer ---UDPServer ---UnixStreamServer ---UnixDatagramServer 这四个类的同步请求,每一个请求只有完成后才能进行下一个请求.不适合进行长时间的大数据计算,所以需要单独创建进程或线程来处理每个请求.ForkingMixIn和ThreadingMi

Python自动化开发从浅入深-进阶(进程)

今天的作业涉及到了进程,那么就用作业来说明进程的用法: 这里我们定义了2个函数 getParamikoCmd 和 batchCmd,用于批量向远程服务器发送ssh命令,并返回执行结果. 执行batchCmd进行一些用户交互和参数获取(这里是一组服务器分组信息),循环发起进程批量执行ssh命令,每个进程调用getParamikoCmd 函数进行ssh命令执行. 进程之间是相互独立的,数据不会相互共享,这样可独立完成其任务而不会相互影响. def getParamikoCmd(groupName,s

浅入深出之Java集合框架(上)

Java中的集合框架(上) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架(下)>. 目录: 浅入深出之Java集合框架(上) 浅入深出之Java集合框架(中)   努力赶制中..关注后更新会提醒哦! 浅入深出之Java集合框架(下) 努力赶制中..关注后更新会提醒哦! 一.集合概述 1)集合的概念 现实生活中的集合:很多事物凑在一起. 数学中的集合:具有共同属性的事物的总体

浅入深出Vue:第一个页面

今天正式开始入门篇,也就是实战了~ 首先我们是要做一个博客网站,UI 框架采用江湖传闻中的 ElementUI,今天我们就来利用它确定我们博客网站的基本布局吧. 准备工作 新建一个vue项目(可以参考基础篇里的搭建方法,也可以参考官网现在最近的 Vue CLI 3.x进行可视化创建和管理 安装 vue-router 安装 elementui 以上的操作都可以在之前的博文中(基础篇)找到完整步骤,这里就不重复了. 我们做完准备工作之后,目录结构如下: 我们来看看这个目录: |--public 公共

浅入深出ElasticSearch构建高性能搜索架构

浅入深出ElasticSearch构建高性能搜索架构  课程学习地址:http://www.xuetuwuyou.com/course/161 课程出自学途无忧网:http://www.xuetuwuyou.com 一.课程用到的软件 ElasticSearch5.0.0 Spring Tool Suite 3.8.2.RELEASE Maven3.0.5 Spring4 Netty4 Hadoop2.7.1 Kibana5.0 JDK1.8.0_111 二.课程目标 1.快速学习Elastic