博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python学习笔记4:集合方法
阅读量:4615 次
发布时间:2019-06-09

本文共 1946 字,大约阅读时间需要 6 分钟。

集合 set

Python的集合是一个无序不重复集基本功能为关系测试和消除重复元素集合对象还支持数学集合概念中的运算

集合中的很重要的用法就是消除重复如果我们处理数据想要消除重复的元素,可以先将这个类型转化为集合,会自动消除重复项,然后再把集合转化为以前的类型

创建集合

集合直接用大括号表示或者通过转化来表示

直接创建

>>> a = {1,2,5,8,3,6}>>> type(a)

通过转化

>>> a = [1,2,3,4,5]>>> b = set(a)>>> b{1, 2, 3, 4, 5}>>> a[1, 2, 3, 4, 5]

求union(联合)intersection(交)difference(差)以及对称差分

单纯的求两个集合的union、intersection和difference可以用特殊符号直接求得

>>> s{1, 2, 3, 4, 5}>>> t{3, 4, 5, 6, 7}>>> s|t{1, 2, 3, 4, 5, 6, 7}>>> s&t{3, 4, 5}>>> s-t{1, 2}>>> s^t{1, 2, 6, 7}

集合类型的内建方法

以下方法不会对两个集合进行改变

s、t 分别为两个不同的集合

s.issubset(t) 测试s是不是t的子集,是显示True,不是显示False,可以用 s <= t 来表示

>>> a = {'a','c'}>>> b = {'a','b','c','d','e'}>>> a.issubset(b)True

s.issuperset(t) 测试s是不是t的超集 可以用 s >= t 来表示

>>> a = {'a','c'}>>> b = {'a','b','c','d','e'}>>> b.issuperset(a)True

s.union(t) 返回合并后的集合,相当于s|t

s.intersection(t) 返回两个集合的交集 相当于s&t

s.difference(t) 差分操作,返回在s中存在,在t中不存在的元素集合 相当于s-t

s.symmetric_difference(t) 对称差分操作,返回存在与s但是不存在于t以及存在于t但是不存在与s的综合的集合,相当于 s^t

s.copy() 返回s的浅拷贝

以下方法会改变集合

s.update(t) 将t中的元素添加到s中 相当于s|=t,将s和t求和赋值给s

>>> s{1, 2, 3, 4, 5}>>> t{3, 4, 5, 6, 7}>>> s.update(t)>>> s{1, 2, 3, 4, 5, 6, 7}>>> t{3, 4, 5, 6, 7}

s.intersection_update(t) 交集修改操作,相当于s&=t 将s和t的交集赋值给s

>>> s = {1,2,3,4,5}>>> t = {4,5,6,7,8}>>> s.intersection_update(t)>>> s{4, 5}>>> t{4, 5, 6, 7, 8}

s.difference_update(t) 相当于s-=t 差修改操作, 将s和t的差赋值给s

s.symmetric_difference_update(t) 相当于s^=t 将s和t求对称差分然后赋值给s

s.add(obj) 将obj添加到s集合中

>>> s = {1,2,3}>>> s.add(4)>>> s{1, 2, 3, 4}

s.remove(obj) 将obj从s中删除,如果s中没有obj会引发异常

s.discard(obj) 将obj从s中丢弃,即使s中没有obj 也不会引发异常

>>> s{1, 2, 3, 4}>>> s.remove(3)>>> s{1, 2, 4}>>> s.remove(5)Traceback (most recent call last):  File "
", line 1, in
KeyError: 5>>> s{1, 2, 4}>>> s.discard(4)>>> s{1, 2}>>> s.discard(5)>>> s{1, 2}

s.pop() 弹出操作,随机删除并返回s中的一个元素

>>> s = {1,2,3,4,5}>>> s.pop()1>>> s{2, 3, 4, 5}

s.clear() 清除s中的所有元素

>>> s{2, 3, 4, 5}>>> s.clear()>>> sset()

转载于:https://www.cnblogs.com/rendawei/p/6986456.html

你可能感兴趣的文章
linux常用端口
查看>>
异常处理
查看>>
/proc/uptime详解
查看>>
如何建立合适的索引?
查看>>
acwing 651. 逛画展
查看>>
Vijos P1243 生产产品 (单调队列优化DP)
查看>>
iOS常用第三方库 -转
查看>>
Android布局学习
查看>>
python的沙盒环境--virtualenv
查看>>
软件自动化测试——入门、进阶与实战
查看>>
BZOJ1878 [SDOI2009]HH的项链 树状数组 或 莫队
查看>>
BZOJ3675 [Apio2014]序列分割 动态规划 斜率优化
查看>>
2016.10.24 继续学习
查看>>
产品功能对标 - 服务授权管理
查看>>
各地IT薪资待遇讨论
查看>>
splay入门
查看>>
带CookieContainer进行post
查看>>
C语言学习笔记--字符串
查看>>
CSS-上下文选择器
查看>>
ionic repeat 重复最后一个时要执行某个函数
查看>>