前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 集合 Set

Python 集合 Set

作者头像
为为为什么
发布2022-08-09 17:59:19
2480
发布2022-08-09 17:59:19
举报
文章被收录于专栏:又见苍岚

“集”这个概念在 Python 中算是比较年轻的,同时它的使用率也比较低。set 和它的不可变的姊妹类型 frozenset 直到 Python 2.3 才首次以 模块的形式出现,然后在 Python 2.6 中它们升级成为内置类型。本文记录相关内容。

集合

  • 表示唯一对象的聚集,因此集合中没有重复元素,可以用于去重。
  • 初始化集合用 set() 函数,或带元素地使用 {…}
代码语言:javascript
复制
l = ['spam', 'spam', 'eggs', 'spam']
s = set(l)
t = {1, 2}
-->
s
{'eggs', 'spam'}
t
{1, 2}

  • 集合中的元素必须是可散列的,set 类型本身是不可散列的,但是 frozenset 可以。因此可以创建一个包含不同 frozenset 的 set。
代码语言:javascript
复制
data = [1,2,3]
f = frozenset(data)
s = set([*data, f])
print(s)

-->
{frozenset({1, 2, 3}), 1, 2, 3}

  • 除了保证唯一性,集合还实现了很多基础的中缀运算符。给定两个集合 a 和 b,a | b 返回的是它们的合集,a & b 得到的是交集,而 a - b 得到的是差集。合理地利用这些操作,不仅能够让代码的行数变少,还 能减少 Python 程序的运行时间。这样做同时也是为了让代码更易读,从 而更容易判断程序的正确性,因为利用这些运算符可以省去不必要的循 环和逻辑操作。
代码语言:javascript
复制
set1 = set([1,2,3])
set2 = set([2,3,4])
set3 = set([4,5,6])

print(set1 | set2)
print(set1 - set2)
print(set2 & set2)

>>>
{1, 2, 3, 4}
{1}
{2, 3, 4}
<<<

集合推导
  • Python 2.7 带来了集合推导(setcomps)和字典推导。
代码语言:javascript
复制
s = {num for num in range(10) if num % 2}
print(s)

>>>
{1, 3, 5, 7, 9}
<<<

集合方法

  • 集合的数学运算
  • 集合的比较运算
  • 集合的实用方法

参考资料

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 集合
    • 集合推导
    • 集合方法
    • 参考资料
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档