python - itertools.combinations() 是确定性的吗?
问题描述
从 itertools.combinations() 获得的项目的顺序是否确定?
我目前正在编写一个脚本,该脚本使用 itertools.combinations 生成大量对象,足够大,以至于我无法将其全部保留在内存中。对于每种组合,都有一个函数返回一个值,我存储在一个 numpy 数组中(因为它们的内存效率相当高)。我几乎没有足够的内存来存储所有这些浮点数。
然后我遍历这些浮点数,如果它是感兴趣的索引,我再次使用计数器变量运行 itertools.combinations 以访问产生该结果的组合(只需几秒钟)。
我已经用我有足够内存的各种较小的数据集对此进行了测试,并且在这些情况下所有条目都是相同的,但我担心这不是一种“安全”的方法来做我想做的事。
解决方案
从文档:
组合按字典排序顺序发出。因此,如果输入的可迭代对象已排序,则组合元组将按排序顺序生成。
元素根据它们的位置而不是它们的值被视为唯一的。因此,如果输入元素是唯一的,则每个组合中都不会出现重复值。
推荐阅读
- graphql - 查询中选择的数据不正确
- javascript - 动态信息命令遍历命令以查找特定命令
- angular-cli - 如何在 ng new 命令中使用 --create-application=false
- c# - 在 .NET Core 中实例化在其构造函数中使用依赖注入而不使用 new 的新对象
- perl - Perl 中的 Printf 或 Sprintf 语句
- c# - 从 Linux 机器上的 .Net Core 应用程序获取进程的内存使用情况
- php - js文件中的laravel本地化
- google-apps-script - 如何将 Google 幻灯片组拆分为多个单页组
- javascript - 一键的jQuery开/关功能不起作用?
- json - iOS14中universal Link的apple-app-site-association文件