Python:带有生成器的给定集合的幂集[重复]

2024-01-12

我正在尝试在 Python 中构建给定集合的子集列表发电机。说我有

set([1, 2, 3])

作为输入,我应该有

[set([1, 2, 3]), set([2, 3]), set([1, 3]), set([3]), set([1, 2]), set([2]), set([1]), set([])]

作为输出。我怎样才能实现这个目标?


最快的方法是使用 itertools,尤其是链和组合:

>>> from itertools import chain, combinations
>>> i = set([1, 2, 3])
>>> for z in chain.from_iterable(combinations(i, r) for r in range(len(i)+1)):
    print z 
()
(1,)
(2,)
(3,)
(1, 2)
(1, 3)
(2, 3)
(1, 2, 3)
>>> 

如果你需要一个生成器,只需使用yield并将元组转换为集合:

def powerset_generator(i):
    for subset in chain.from_iterable(combinations(i, r) for r in range(len(i)+1)):
        yield set(subset)

然后简单地:

>>> for i in powerset_generator(i):
    print i


set([])
set([1])
set([2])
set([3])
set([1, 2])
set([1, 3])
set([2, 3])
set([1, 2, 3])
>>> 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:带有生成器的给定集合的幂集[重复] 的相关文章

  • sklearn DeprecationWarning 数组的真值

    从文档中运行 rasa core 示例 python3 m rasa core run d models dialogue u models nlu default current 并在对话框中的每条消息后获取此错误输出 sklearn D
  • CVXPY 二次规划; ArpackNoConvergence 错误

    我尝试使用 Python 包 CVXPY 来解决第一种形式的凸二次规划问题 https www cvxpy org examples basic quadratic program html https www cvxpy org exam
  • 如何将本机 popcount 与 numba 一起使用

    我正在使用 numba 0 57 1 我想在我的代码中利用本机 CPU popcount 我现有的代码太慢 因为我需要运行它数亿次 这是一个 MWE import numba as nb nb njit nb uint64 nb uint6
  • 如何测试使用 XCom 的 Apache Airflow 任务

    我正在尝试找出一种测试 DAG 的方法 其中有几个任务使用 XCom 进行通信 由于控制台命令只允许我从 DAG 运行任务 有没有一种方法可以测试通信而无需通过 UI 运行 DAG Thanks 这是一种对我有用的方法 尽管 Airflow
  • 如何为 Intellij/PyCharm 设置 PYTHONSTARTUP 脚本

    我尝试添加PYTHONSTARTUP环境变量 我还尝试了自定义启动脚本 但更令人惊讶的是 这also没有工作 npa别名无法识别 出于一点绝望 我什至尝试添加到interpreter options 那什么也没做 实际上是什么Interpr
  • 使用 Python 在 Google Cloud Storage 存储桶中创建/上传新文件

    如何使用 Python 和可用的客户端库在 Google Cloud Storage 中创建新的空文件 或者如何使用 blob 函数 upload from filename 将新文件上传到选定的存储桶 要初始化 blob 对象 我们应该在
  • 在 Python 中绘制分类数据的三个维度

    我的数据包含三个我试图可视化的分类变量 城市 五个之一 职业 四种之一 血型 四种之一 到目前为止 我已经成功地以一种我认为易于使用的方式对数据进行了分组 import numpy as np pandas as pd Make data
  • Spyder 导入模块出错

    我正在尝试在 Spyder 中使用 sklearn 一开始 当我尝试导入它时 我收到 ImportError No module named sklearn 然后我用 PYTHONPATH 管理器设置 PATH 然后使用工具菜单中的 更新模
  • Windows Defender 检测 Python EXE 为木马

    我制作了一个 Python 脚本 将 Windows 目录以 zip 形式邮寄给我 我使用 sched 模块添加了一个调度程序 每小时重复一次 我试图制作一个简单的同步应用程序供个人使用 在 Windows 启动时启动 我使用将其转换为 e
  • 检测/删除 Python 2 + GTK 中不成对的代理字符

    在Python 2 7中我可以成功转换Unicode字符串 abc udc34xyz 转换为 UTF 8 结果是 abc xed xb0 xb4xyz 但是当我将 UTF 8 字符串传递给例如时 pango parse markup or
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 使用 boto3 从 s3 下载时使用 filename 作为文件名

    我正在使用 boto3 上传文件 如下所示 client boto3 client s3 aws access key id id aws secret access key key client upload file tmp test
  • 使用 python 只读取 Excel 中的可见行

    我想只读取 python 中 Excel 工作表中的可见行 输入 Excel表 所以当我过滤时 作为 python 中的输出 在本例中我将仅获得可见数据 1 行 这是我的代码 from openpyxl import load workbo
  • 如何为 Python 中的应用程序设置专用屏幕区域?

    MS OneNote 就是一个很好的例子 它可以选择固定在屏幕的一侧 并将所有其他窗口推到一侧 当最大化或调整其他窗口大小时 它们只能扩展到 OneNote 的边缘 Python 使用 Tkinter 或其他模块是否具有此功能 感谢您的帮助
  • PyCharm 无法识别字典值类型

    我有一个简单的代码片段 其中我将字典值设置为空列表 new dict for i in range 1 13 new dict i 现在 如果在下一行的循环内我会输入new dict i 并添加一个点 我希望 PyCharm 向我显示可用于
  • 使用 Python 脚本打开特定文件类型?

    如何使 Python 脚本成为特定文件类型 例如 foo 的默认应用程序 例如 当我双击 Finder Explorer 中的文件时 我希望该文件在 Python 脚本中打开 这可以在 Win 和 或 OS X 中实现吗 如果重要的话 该应
  • 如何加速 pandas 字符串函数?

    我正在使用 pandas 矢量化 str split 方法来提取从 上的拆分 返回的第一个元素 我还尝试使用 df apply 与 lambda 和 str split 来产生等效的结果 使用 timeit 时 我发现 df apply 的
  • 使用 statsmodels.formula.api 中的 ols - 如何删除常数项?

    我正在遵循第一个例子statsmodels教程 http statsmodels sourceforge net devel http statsmodels sourceforge net devel 如何指定在 ols 中不使用常数项进
  • 如何使用 pygame.mixer 重复音乐?

    我创建了以下使用 pygame mixer 播放 mp3 音乐的代码 然而 音乐不会重复 有什么想法可以让音乐重复播放吗 这是代码 playlist list playlist append put music here mp3 playl
  • 通过 ManyToManyField = Value 对 django 查询集进行排序

    如果有一些模型 例如 class Tag models Model name models CharField class Thing models Model title models CharField tags models Many

随机推荐

  • 在同一函数内,通过间接访问不在作用域内的局部变量是否是 UB?

    在第二个右大括号之后 b只能通过间接访问a int main int a int b 42 a b printf d a UB return 0 Since b不再在范围内 这是 UB 吗 我知道从已经返回的函数中取消引用指向非静态局部变量
  • 使用 CloudFormation 读取机密

    我正在尝试在 CloudFormation 中创建一个 AWS 堆栈 并在 JSON 中包含一个秘密 我不希望参数中显示密钥的值 也不希望我的实例 fargate 或 ec2 访问密钥管理器 我希望 CloudFormation 从机密管理
  • TFS 2010:将 _PublishedWebsites 复制到测试服务器

    我看过类似的问题和答案 但发现它们并不是我真正想要的 我有一个大型解决方案 其中包含多个网络项目 所有 Web 项目都共享一些通用代码 因此它们都是同一解决方案的一部分 有一个被所有项目引用的通用项目 我一直在 Team Foundatio
  • 在 opener 窗口上调用函数

    孩子失去了父母 我有一个父窗口 当有人单击图像时 JS 弹出窗口会打开并显示照片及其信息 要关闭弹出 子窗口 并在父 开启窗口上闪烁一个元素 我一直在使用此函数 function closeWindow var currentID docu
  • dash_bootstrap_components 安装成功但无法识别

    我的破折号工作得很好 我已经安装了 dash bootstrap components 来为我的破折号提供样式 I wrote pip install dash bootstrap components并完美安装 但是当我运行该应用程序时
  • 如何在 Angular2/4/5 中实现自定义异步验证器

    1 Angular 还支持它吗 看this https github com angular angular issues 1068开放问题 2 如果是的话 那么下面的代码有什么问题 export class someClass myFor
  • 使用 pyspark 进行分层采样

    我有一个火花DataFrame其中有一列具有很多零而且很少 仅占0 01 我想抽取一个随机子样本 但要进行分层 以便保持该列中 1 与 0 的比例 可以在 pyspark 中做吗 我正在寻找一个非标量解决方案并基于DataFrame是而不是
  • 如何使用 jquery.load() 在内容之前加载页眉和页脚

    我使用以下方法将页眉和页脚调用到不同的页面中jquery load 方法 但在加载页面时 页脚和页眉有延迟 那是当我运行这个 我的内容 之后 仅显示标题 我想同时显示页眉 内容 页脚加载 你能帮我么 div div
  • R 中的隐式变量引用

    我该如何评价c 2 通过致电z a lt c 1 2 3 b lt c 4 5 6 c lt cbind a b z lt c 2 eval z 不管用 可能是下面这样 eval parse text z
  • 如何通过部分行键过滤HBase的Scan?

    我有带有行键的 HBase 表 其中包含文本 ID 和时间戳 如下所示 string id1 1470913344067 string id1 1470913345067 string id2 1470913344067 string id
  • 获取 YouTube 中的音乐流派

    当我们查看 YouTube 页面并单击 音乐 时 我们可以看到不同流派的歌曲 例如 说唱 摇滚 乡村 等 如何使用 YouTube API 检索此数据 按类型分类的视频列表 实现此目的的一种方法是使用 Topics API 与 API V3
  • Py安装程序问题

    我使用 pyinstaller 创建了 python 程序的 exe 版本 但是当我尝试运行我的应用程序时 那个 exe 我收到这样的错误 问题可能是由什么引起的 提前致谢 None
  • 在 Django 中获取 QuerySet 的值

    我怎样才能获得价值course code在这个查询集中
  • 如何以编程方式使用 PIN 码登录 Windows

    在 Windows 8 中 引入了一种针对非域用户的新身份验证方法 使用控制面板中设置的 PIN 目前我们的应用程序支持使用预先保存的密码登录 WindowsLogonUserW 现在还需要 PIN 码的支持 我们如何从 NET 应用程序直
  • proxy_set_header为什么是Host $host; nginx 1.8.0 不再工作?

    I used proxy set header Host host 将主机标头设置为原始请求主机 在 nginx 1 4 1 中 这工作正常 现在升级到 1 8 0 后 我得到的是本地 IP 而不是浏览器传递的主机 为什么会发生这种情况以及
  • Flutter 未来建设者名单

    我在理解未来构建器如何在颤振中工作时遇到一些困难 我想从未来的调用中传递一个字符串列表 并且我想在 SingleChildScrollView 中显示它们 问题是当我访问snapshot data我无法访问列表的元素 因为在我的 Singl
  • ltrace(库跟踪工具)如何工作?

    如何ltrace https www man7 org linux man pages man1 ltrace 1 html work 它如何找出程序调用了哪些库函数 是否存在所有对库函数的调用都经过的公共代码路径 或许ltrace在这个公
  • Intellij idea - 如何始终显示方法参数名称

    我在几个演示中看到始终显示参数名称的功能 如图所示 请问我怎样才能打开这个功能 设置 gt 编辑器 gt 常规 gt 外观 gt 显示参数名称提示配置 gt 在多个参数具有相同类型的情况下显示非文字
  • 在 SQL 中,如何获取表中列值最低的所有行?

    我是 SQL 新手 我正在使用此查询来查找表的字段权重中的最小值 SELECT product id MIN weight FROM table WHERE 1 它确实显示了一个具有最小值的字段 但只有一个 但我有很多产品的最小重量相同 有
  • Python:带有生成器的给定集合的幂集[重复]

    这个问题在这里已经有答案了 我正在尝试在 Python 中构建给定集合的子集列表发电机 说我有 set 1 2 3 作为输入 我应该有 set 1 2 3 set 2 3 set 1 3 set 3 set 1 2 set 2 set 1