Python itertools.combinations的担保是什么?

Python itertools.combinations的担保是什么?,python,Python,州政府的文件: 组合按字典排序顺序发出。因此,如果对输入iterable进行排序,则组合元组将按排序顺序生成 元素根据其位置而不是其值被视为唯一的。因此,如果输入元素是唯一的,则每个组合中不会有重复值 [我的重点] 这里的确切保证是什么?经验性检查表明,元素总是被释放出来,就像 for i in range(len(iterable)): for j in range(i + 1, len(iterable)): for k in range(j + 1, len(ite

州政府的文件:

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

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

[我的重点]

这里的确切保证是什么?经验性检查表明,元素总是被释放出来,就像

for i in range(len(iterable)):
    for j in range(i + 1, len(iterable)):
        for k in range(j + 1, len(iterable)):
            ...
                yield iterable[i], iterable[j], iterable[k], ...

在这种情况下,“词典顺序”是什么意思?特别是,我相信强调的句子是至关重要的,但我不是100%的连接。我认为这意味着字典顺序适用于元素的索引,而不考虑其值,但我希望有人能证实这一点。

要将这些段落从计算机科学翻译成英语:

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

这里的“词典学”是一个数学术语,并不是指字母顺序,而是指“词典定义的任何顺序”

17世纪早期:现代拉丁语,来自希腊语lexikon(biblion)‘单词之书’,来自lexis‘单词’,来自legein‘speak’

这里的“词典”是你的输入。简单地说,您的输入定义了生成输出的顺序。如果想要按字母顺序排序的输出,请对输入进行排序

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


这只是说,
组合
不会查看或关心实际值本身,它只是根据元素的位置组合元素。它不会基于值进行重复数据消除,而是对位置组合进行重复数据消除。如果需要唯一的组合,请消除输入的重复数据。

;tl;dr,如果你从“abc”开始,你将得到“ab”,“ac”,“bc”,而不是“ba”,“bc”,“ac”,例如(这将是“bac”的2个组合的输出)太长了,读不下去了。太长了,读不下去了。我知道什么是词典学的顺序,什么组合是输出的。我只是对这些段落进行了适当的分析。我可能是在想它。…我的问题是,我不清楚强调的行与我之前的段落有什么关系。t、 @Amadan如果我们以“cba”开头,我们会得到“cb”、“ca”、“ba”。但是“cba”不是按“词典”顺序排列的。那么现在保证是什么(组合会保持列表中的原始顺序)?@slider Lexicographic在这里不是按字母顺序排列的。它基本上只是指“以任何顺序提供输入”"; 这里的输入是定义顺序的“词典”。这里的“词典”是您的输入。是缺少的链接。现在一切都有意义了。谢谢