集合具有无序性,互异性

一.集合的建立

空集合

s=set()
s={}#这样默认为是一个空字典

集合内的元素是可哈希的即不可变的数据类型

s={1,2,3,4}
s=set([1,2,3,4])
s=set('python')
print(s)#{'h', 'y', 't', 'n', 'p', 'o'}

二.添加元素

s=set([1,2,3,4])
s.add(5)
print(s)#{1,2,3,4,5}

update可以添加多个元素

s.update([5,6])
print(s)#{1, 2, 3, 4, 5, 6}
s.update([7,8],{9,10})
print(s)#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

三.删除元素

discard和remove都可以表示删除一个元素,但若集合中没有该元素,则使用remove会报错,discard不会

s={1,2,3,4}
s.remove(1)
print(s)#{2, 3, 4}
s.discard(2)
print(s)#{3, 4}
s.discard(5)
s.remove(5)#这句会报错

pop

s={1,2,3,4}
a=s.pop()#随机删除一个元素并将其作为返回值
print(a)

clear

s.clear()#清空集合
print(s)#set()空集合

四.不可变集合frozenset

s=frozenset(1,2,3,4)#不能进行增加或删除等操作

五.集合之间的关系

s1=set([1,2,3,4,5])
s2=set([4,5,6,7,8])

交集

s3=s1&s2
print(s3)#{4,5}
s3=s1.intersection(s2)
print(s3)#{4,5}

并集

s3=s1|s2
print(s3)#{1, 2, 3, 4, 5, 6, 7, 8}
s3=s1.union(s2)
print(s3)#{1, 2, 3, 4, 5, 6, 7, 8}

差集

#属于s1但不属于s2
s3=s1-s2
print(s3)#{1, 2, 3}
s3=s1.difference(s2)
print(s3)#{1, 2, 3}

对称差

#除去s1和s2中相同的元素
s3=s1^s2
print(s3)#{1, 2, 3, 6, 7, 8}
s3=s1.symmetric_difference(s2)
print(s3)#{1, 2, 3, 6, 7, 8}

子集

s1={1,2,3,4}
s2={3,4,5,6}
s3={2,3,4}
print(s2<s1)#False
print(s3<s1)#True
print(s3.issubset(s1))#True

超集

s1={1,2,3,4}
s2={3,4,5,6}
s3={2,3,4}
print(s1>s2)#False
print(s1>s3)#True
print(s1.issuperset(s3))#True

  

python基础学习10----集合的更多相关文章

  1. python基础学习10

    python基础学习 内容概要 文件内光标的移动 文件数据修改 函数简介 函数语法结构 内容详情 文件内光标的移动 with open(r'路径','r',encoding='utf8') as f: ...

  2. python基础学习1-SET 集合

    # -*- coding:utf-8 -*- set集合 无序不重复的序列 se = {"a","b","c"} #创建SET集合 prin ...

  3. Python基础学习之集合

    集合是一个无序.不重复的数据集合,它的主要作用如下: 去重:把一个列表变成集合,就可以去除重复的内容 关系测试:测试两组数据之间的交集.并集.差集等关系 集合常用的操作: #创建一个数值集合 s=se ...

  4. python基础学习之集合set

    .集合:set 特点:无序,不可重复(自动去重),可更改,可以与元组.列表互相转换 格式:s = {'x','y','z'} 转换:(转回用set) s = {'x','y','z'}        ...

  5. Python基础学习五

    Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出 ...

  6. python基础学习7

    python基础学习7 内容概要 字符串的内置方法 字符串的内置方法(补充) 列表的内置方法 可变类型与不可变类型 队列与堆栈 内容详情 字符串的内置方法 # 1.strip 移除字符串首尾的指定字符 ...

  7. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  8. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  9. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  10. Python 基础学习 总结篇

    Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...

随机推荐

  1. dhcp服务器(一)

    DHCP服务概述: 名称:DHCP -Dynamic Host Configuration Protocol动态主机配置协议. 功能:DHCP(Dynamic Host Configuration P ...

  2. linux sticky

    文件的粘滞位(sticky)位是作什么用的? 普通文件的sticky位会被linux内核忽略, 目录的sticky位表示这个目录里的文件只能被owner和root删除 粘着位(Sticky bit) ...

  3. 递推、数位DP解析(以HDU 2089 和 HDU 3555 为例)

    HDU 2089 不要62 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2089 Problem Description 杭州人称那些傻乎乎粘嗒嗒的人 ...

  4. .16-浅析webpack源码之编译后流程梳理

    这节把编译打包后的流程梳理一下,然后集中处理compile. 之前忽略了一个点,如下: new NodeEnvironmentPlugin().apply(compiler); // 引入插件加载 i ...

  5. 下拉加载更多DEMO(js实现)

    项目的一个前端页面展示已购买商品时,要求能下拉加载更多.花了点时间研究这个功能,以前没做过. 首先需要给div加scroll事件,监听滚动条滚动动作.那何时触发加载动作呢?当滚动条滚到底的时候.如何判 ...

  6. input点击链接另一个页面,各种操作。

    1.链接到某页<input type="button" name="Submit" value="确 定" class="b ...

  7. http Socket长连接

    文档:http://www.cocoachina.com/ios/20160602/16572.html socket(套接字)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元,包含进行网 ...

  8. Java JDBC的基础知识(一)

    一.为什么引入JDBC 在学习JDBC之前,抛开它的概念,我先按照我的理解解释一下,为什么要引入JDBC.在我看来,引入JDBC跟我之前学过的引入JVM(Java虚拟机)有些相似之处.当然,关于JVM ...

  9. linux系统编程:自己动手写一个cp命令

    cp命令的基本用法: cp 源文件 目标文件 如果目标文件不存在 就创建, 如果存在就覆盖 实现一个cp命令其实就是读写文件的操作: 对于源文件: 把内容全部读取到缓存中,用到的函数read 对于目标 ...

  10. centos7下快速安装Nginx服务器

    1.添加源 默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址.因此可以如下执行命令添加源: sudo rpm -Uvh http://nginx.org/pa ...