itertools.combinations()是否确定?

时间:2018-06-01 22:18:38

标签: python functional-programming combinatorics

从itertools.combinations()获得的项目顺序是否确定?

我目前正在编写一个脚本,它使用itertools.combinations产生过多的对象,足够大以至于我无法将其保留在内存中。对于每个组合,都有一个函数返回一个存储在numpy数组中的值(因为它们具有相当的内存效率)。我只有足够的内存来存储所有这些花车。

然后我迭代这些浮点数,如果它是一个感兴趣的索引,我再次使用计数器变量运行itertools.combinations来访问产生该结果的组合(只需要几秒钟)。 / p>

我用各种较小的数据集测试了这个,我有足够的内存,在这些情况下条目都是相同的,但我担心这不是一个安全的"做我想做的事。

1 个答案:

答案 0 :(得分:5)

来自docs

  

组合以字典排序顺序发出。所以,如果输入   对iterable进行排序,组合元组将按排序生成   顺序。

     

根据元素的位置而不是元素,将元素视为唯一元素   值。因此,如果输入元素是唯一的,则不会重复   每个组合中的值。