python-set()集合操作(创建、添加、删除、交集、并集、差集、对称差集)

2019-02-16 09:41:41   Python
  Python  

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。set不保证有序。不可以放入可变对象(例如list)作为key,因为可变对象无法判断相等。

创建

要创建一个set,需要提供一个list作为输入集合

>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}

>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}

或者,直接创建

>>> s = {1, 2, 3}
>>> s
{1, 2, 3}

>>> s = {1, 1, 2, 2, 3, 3}
>>> s
{1, 2, 3}

添加元素

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

# 重复添加不会有效果
>>> s.add(4)
>>> s
{1, 2, 3, 4}

删除元素

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

删除不存在元素会报KeyError错误

交集

>>> x={1,2,3,4}
>>> y={3,4,5,6}
>>> x&y
{3, 4}
# 或
>>> x.intersection(y)
{3, 4}

并集

>>> x={1,2,3,4}
>>> y={3,4,5,6}
>>> x | y
{1, 2, 3, 4, 5, 6}
# 或
>>> x.union(y)
{1, 2, 3, 4, 5, 6}

差集

>>> x={1,2,3,4}
>>> y={3,4,5,6}
# x与y的差集
>>> x-y
{1, 2}
# 或
>>> x.difference(y)
{1, 2}

# y与x的差集
>>> y-x 
{5, 6}
# 或
>>> y.difference(x)
{5, 6}

对称差集

对称差集就是,有集合a与集合b,a与b的差集跟b与a的差集的并集为对称差集。通俗的说就是[a中存在b中不存在的元素]与[b中存在a中不存在的元素]合起来组成的集合,也就是把ab中相同元素去掉,余下的元素所组成的集合。其实,就是两个集合进行异或操作(相同丢弃,不同保留)。

>>> x={1,2,3,4}
>>> y={3,4,5,6}
>>> x^y
{1, 2, 5, 6}
>>> y^x
{1, 2, 5, 6}
>>> x.symmetric_difference(y)
{1, 2, 5, 6}
>>> y.symmetric_difference(x)
{1, 2, 5, 6}

集合的子集和超集

>>> x
set([1, 2, 3, 4])
>>> z
set([1, 2, 3])
>>> z.issubset(x) # z是x的子集
True
>>> x.issuperset(z) # x是z的超集
True

更多文章:vien.我爱你

vien.tech版权所有,允许转载,但转载请注明出处和原文链接: https://viencoding.com/article/77
欢迎小伙伴们在下方评论区留言 ~ O(∩_∩)O
文章对我有帮助, 点此请博主吃包辣条 ~ O(∩_∩)O

猜你喜欢


评论

There are no comments yet.
未登录

登录后即可发表评论

登录或注册

标签

AdSense Anaconda Android API apt Auth AWS B-tree Bandwagon Blog bower brew bytes Caffe Catalina cloudcone Composer conda CPU crontab CSS Cuda cv2 datetime Digitalocean DNS Docker Docker-Compose export Flask FTP GET Git GitHub Gmail GoDaddy Google GTM hash Homebrew Homestead HTML http HTTPS IDEA image imagemagick imagick imgick import InnoDB ISO8601 iTerm2 Java JPG Keras Laravel Laravel-Admin lazyload Linux list lnmp load logs Lravel Mac Markdown matplotlib md5 mix Mojave mongo MongoDB MySQL Namesilo Nginx npm numpy Nvidia Nvidia-Docker onevps OpenCV Openpose Outline parse PayPal PHP php-fpm PhpStorm PHP扩展 PIL Pillow pip PNG POST Protobuf PyCharm pyenv pymongo Python Python,人工智能,机器学习,VOC,xml Queue Redis requests save selenium SEO Shadowsock Shadowsocks ShadowsocksR simplemde Spring Boot SQLServer ssd SSH SSL证书 SSR str Sublime sudo swap Tensorflow Terminal Terminator Ubuntu urllib UTC v2ray Valet Validation Validator VienBlog virtualenvs VPN VPS Vultr Web Windows WordPress Xcode zip zmq zsh 下载图片 云主机 云服务器 人工智能 优化 优惠码 伪原创 作弊与反作弊 免费ss账号 免费提现 切片 前端 加密 协议 博客 友链 后台运行 命令 图片操作 图片转换 域名 大小写转换 安卓模拟器 安装 定时任务 定时执行 导出导入 延迟加载 慢查询 懒加载 提现 搜索引擎 搬瓦工 搭梯子 教程 数据库 文件上传 无法登录 日志 时区 时间戳 服务器 机器学习 梯子 港版支付宝 生活服务 科学上网 系统升级 索引 编辑器 自动付款 英文伪原创 计划任务 语法 远程连接 重定向 错误异常 错误提示 队列 阿里云 香港 香港手机号
亲情非友情链接