- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
itertools.combinations
的文档状态:
Combinations are emitted in lexicographic sort order. So, if the input iterable is sorted, the combination tuples will be produced in sorted order.
Elements are treated as unique based on their position, not on their value. So if the input elements are unique, there will be no repeat values in each combination.
[强调我的]
这里做出的确切保证是什么?经验检查表明,元素总是像
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%的联系是什么。我认为这意味着词典顺序应用于元素的索引而不考虑值,但我希望有人证实这一点。
最佳答案
将这些段落从计算机科学翻译成英语:
Combinations are emitted in lexicographic sort order. So, if the input iterable is sorted, the combination tuples will be produced in sorted order.
这里的“词典”是一个数学术语,并不是指按字母顺序,而是“按词典定义的任何顺序”。
early 17th century: modern Latin, from Greek lexikon (biblion) ‘(book) of words’, from lexis ‘word’, from legein ‘speak’.
此处的“词典”是您的输入。简而言之,您的输入定义了生成输出的顺序。如果您想要按字母顺序排序的输出,请对您的输入进行排序。
Elements are treated as unique based on their position, not on their value. So if the input elements are unique, there will be no repeat values in each combination.
这只是说 combinations
不会查看或关心实际值本身,它只是根据元素的位置组合元素。它不会根据值进行重复数据删除,它会删除位置组合的重复数据。如果您想要独特的组合,请对您的输入进行重复数据删除。
关于python - itertools.combinations 做出的保证是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53112861/
我创建了一个库项目,然后构建它,获取 .aar 并解压缩它。获取包含库的 classes.jar 文件,并将其添加到另一个项目中。该项目识别我的文件,我可以从中调用方法和函数。我的问题是我尝试从我的库
这不是现实世界的问题,我只是想了解如何创建 promise 。 我需要了解如何为不返回任何内容的函数做出 promise ,例如 setTimeout。 假设我有: function async(ca
我是 Promise 的新手。我写了两个例子: 第一个是: new RSVP.Promise(function (resolve, reject) { setTimeout(function
我有一个 nodejs (express) 作为服务器端,一个 angular 6 作为客户端。在服务器中我有中间件功能,可以进行 session 检查。如果 session 无效或不存在,我想向客户
我有一个 nodejs (express) 作为服务器端,一个 angular 6 作为客户端。在服务器中我有中间件功能,可以进行 session 检查。如果 session 无效或不存在,我想向客户
我有四个 I/O 操作:A、B、C 和 D。它们中的每一个都应该使用 vertx.executeBlocking 来执行。我应该有以下行为: //PSEUDOCODE waitForExecuteBl
我是一名优秀的程序员,十分优秀!