python学习(30)_集合_2

遍历集合
In 遍历
>>> s1
{4, ‘a‘, ‘x‘, ‘c‘, ‘b‘}

>>> for value in s1:
... print(value)
...
4
a
x
c
b

使用enumerate进行遍历
>>> for index,value in enumerate(s1):
... print(index,value)
...
0 4
1 a
2 x
3 c
4 b

集合转换成字符串
>>> s1
{4, ‘a‘, ‘x‘, ‘c‘, ‘b‘}

>>> s = "".join({str(v) for v in s1})
>>> s
‘axcb4‘

>>> set1 = {"a","b","c"}
>>> "".join(set1)
‘cba‘

集合转换成元组
>>> s1
{4, ‘a‘, ‘x‘, ‘c‘, ‘b‘}
>>> t = tuple(s1)
>>> t
(4, ‘a‘, ‘x‘, ‘c‘, ‘b‘)

集合转列表
>>> lst = list(s1)
>>> lst
[4, ‘a‘, ‘x‘, ‘c‘, ‘b‘]

set.clear()清空集合

>>> s1
{4, ‘a‘, ‘x‘, ‘c‘, ‘b‘}
>>> s1.clear()
>>> s1
set()

set.copy()复制集合
>>> s1 = set("abcd")
>>> s1
{‘c‘, ‘d‘, ‘b‘, ‘a‘}
>>> s2 = s1.copy()
>>> s2
{‘c‘, ‘d‘, ‘b‘, ‘a‘}

len(set)求集合长度
>>> print (len(s1))
4

交集
利用 & 符号
>>> s1 = {1,2,3,4}
>>> s2 = {3,4,5,6}
>>> s1&s2
{3, 4}

set1.intersection(set2)
>>> s1.intersection(s2)
{3, 4}

set1.intersection_update(set2)
交集更新操作
返回两个集合的交集,set1中其他元素被删除
>>> s1
{1, 2, 3, 4}
>>> s2
{3, 4, 5, 6}

>>> s1.intersection_update(s2)
>>> s1
{3, 4}

并集
利用 | 符号
>>> s1 = {1,2,3,4}
>>> s2 = {3,4,5,6}
>>> s1|s2
{1, 2, 3, 4, 5, 6}

set1.union(set2)
>>> s1.union(s2)
{1, 2, 3, 4, 5, 6}

set1.update(set2)
并集更新操作,set2中的元素被添加到set1
>>> s1.update(s2)
>>> s1
{1, 2, 3, 4, 5, 6}

差集
利用 - 减号
>>> s1 = {1,2,3,4}
>>> s2 = {3,4,5,6}
>>> s1-s2
{1, 2}

set1.difference(set2)
>>> s1.difference(s2)
{1, 2}

Set1.difference_update(set2)
差集更新操作,返回set1和set2的差集,set1中的其他不在set2中的元素被删除
>>> s1 = {1,2,3,4}
>>> s2 = {3,4,5,6}

>>> s1.difference_update(s2)
>>> s1
{1, 2}

set1.symmetric_difference(set2)对称差集
两个集合中所有不属于两个集合交集的元素

对称差集:集合A与集合B的对称差集定义为集合A与集合B中所有不属于A∩B的元素的集合,记为A△B,也就是说A△B={x|x∈A∪B,x?A∩B},即A△B=(A∪B)—(A∩B).也就是A△B=(A—B)∪(B—A)

>>> s1.symmetric_difference(s2)
{1, 2, 5, 6}

set1.symmetric_difference_update(set2)对称差集更新操作
Set1返回两个集合的对称差集
>>> s1.symmetric_difference_update(s2)
>>> s1
{1, 2, 5, 6}

判断集合的关系
利用 > 、>=、 、< <=
集合可以使用大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、不等于(!=)来判断某个集合是否完全包含于另一个集合,也可以使用子父集判断函数。

> 是左边集合是否完全包含右边集合

>>> a = {"a","b","c"}
>>> a
{‘c‘, ‘b‘, ‘a‘}
>>> b = {"a","b"}
>>> b
{‘b‘, ‘a‘}
>>> a > b
True
>>> c = {"a","d"}
>>> a > c
False

set1.issuperset(set2)
判断set1是否是set2的超集

>>> a
{1, 2, 3, 4, 5, 6, 7}
>>> b
{1, 2, 3, 4}
>>> a.issuperset(b)
True

set1.issubset(set2)
判断set1是否是set2的子集
>>> a
{1, 2, 3, 4, 5, 6, 7}
>>> b
{1, 2, 3, 4}
>>> b.issubset(a)
True

set1.isdisjoint(set2)是否不存在交集
判断两个集合是否不存在交集,如果两个集合没有交集,返回True,如果有交集返回False

>>> a = {1,3}
>>> b = {4,6}
>>> a.isdisjoint(b)
True

>>> s1
{1, 2, 5, 6}
>>> s2
{3, 4, 5, 6}
>>> s1.isdisjoint(s2)
False

集合推导式
基本集合推倒式

>>> a = {1,2,3,4}
>>> {i*2 for i in a}
{8, 2, 4, 6}

>>> {i*2 for i in range(5)}
{0, 2, 4, 6, 8}

带if条件的集合推导式
>>> {i**2 for i in a if i%2==0}
{16, 4}

多层循环集合推导式
>>> {x+y for x in a for y in b}
{‘bx‘, ‘ay‘, ‘cx‘, ‘ax‘, ‘by‘, ‘bz‘, ‘cz‘, ‘az‘, ‘cy‘}

原文地址:http://blog.51cto.com/13496943/2345270

时间: 2024-10-11 01:17:25

python学习(30)_集合_2的相关文章

【Python学习笔记】集合

概述 集合的一般操作 内建函数进行标准操作集合 数学运算符进行标准操作集合 集合的应用 概述 python的集合(set)是无序不重复元素集,是一种容器.集合(set)中的元素必须是不可变对象,即可用被哈希,这和字典的键是一样的,所以列表.字典等可变对象不可作为set的元素.集合不提供索引或切片操作,即对象不存在相关的键值.python中的集合分为两种:set是可变的集合,frozenset是不可变的集合. 集合的创建使用关键字set或frozenset, 参数可以是列表.字符串或元组等不可变对

【Python学习之四】集合类型

环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 python3.6 一.字符串:字符串实际上就是字符的数组1.切片是指对操作的对象截取其中一部分的操作.字符串.列表.元组都支持切片操作.(1)python中从左侧开始,下标 0 开始:从右侧,下标从-1开始:(2)切片的语法:[起始:结束:步长],选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)

Python学习笔记-Day3-set集合操作

set集合,是一个无序且不重复的元素集合.定义方式类似字典使用{}创建 目前我们学过的数据类型: 1.字符串(str),2.整型(int),3.浮点型(float),4,列表(list) 5.元组(tuple),6.字典(dict),7.集合(set),8.布尔型(bool) 1.集合创建 2.集合操作   2.1 set.add 添加元素 往set中添加一个元素只有set中不存在该元素时,才会加入该元素   2.2 set.clear 清空所有元素 从set中移除所有元素   2.3 set.

Python学习笔记_零零一:Python基本介绍

Python介绍 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构.Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节.类似于PHP和Perl语言.Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序.Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装

Python学习摘要_ 列表

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Helvetica } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Helvetica; min-height: 22.0px } span.s1 { font: 18.0px "Heiti SC Light" } ctrl+p 上一行指令 ctrl+n 下一行指令 tab  补齐代码/联想 ' "good&q

Python学习笔记_每天一小时 8.24

8.24 函数 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数.可以直接从Python的官方网站查看文档: http://docs.python.org/2/library/functions.html#abs 也可以在交互式命令行通过help(abs)查看abs函数的帮助信息. 比较函数cmp(x, y)就需要两个参数,如果x<y,返回-1,如果x==y,返回0,如果x>y,返回1 数据类型转换 Python内置的常用函数还包括数据类型转换函数,比如int(

Python学习笔记7—集合

set 拥有类似 dict 的特点:可以用{}花括号来定义:其中的元素没有序列,也就是是非序列类型的数据;而且,set 中的元素不可重复,这就类似 dict 的键. >>> s1 = set("Keven") >>> s1 set(['K', 'n', 'e', 'v']) >>> type(s1) <type 'set'>>>> s3 = set(["name","age

[知了堂学习笔记]_集合接口list与集合接口set的区别

在Java中 除了 Map以外的集合的根接口都是Collection接口,而在Collection接口的子接口中,最重要的莫过于List和Set集合接口. 今天我们就来谈谈List集合接口与Set集合接口的差异性. 查看List集合接口的接口方法 查看Set集合接口的API 从两者的API中,以add和get为例来看, List中提供索引的方式来添加元素和获取元素,而Set并不提供.由此可见List集合可是达到精确的存储和获取,而Set只能一个一个的比较,显然效率和实用性是比不上List集合的

python学习笔记(集合的使用、文件操作、字符编码与转码、函数)

集合 集合(set):把不同的元素组成一起形成集合,是python基本的数据类型. 集合元素(set elements):组成集合的成员 为什么需要集合? 集合的作用 1 .列表去重复数据 按照现有知识的解决思路:先设置空列表,然后使用for寻获,把需要去重的列表的第一个数据放到新列表中,然后依次取出第二个数据,把第二个数据和第一个数据作比较,如果不一样,则存入新列表中:以此类推,每取一次都要和新列表中的数据作对比,不一样的则添加入新列表中. 2. 关系测试 比如有学员同时报了python班和l