在一个序列中进行所有双向比较的最有吸引力的方法是什么?你知道吗
到目前为止我所尝试的:
[compare(i, j) for i in sequence for j in sequence]
太可怕了。进行n^2而不是n/2(n-1)比较。还将项目与自身进行比较。你知道吗
l = []
for i in xrange(1,len(sequence)):
for j in xrange(i-1):
l.append(compare(sequence[i], sequence[j]))
丑陋的。你知道吗
[compare(i, j) for i, j in permuations(sequence, 2)]
可能是这个,但不确定是不是脓性的。你知道吗
怎么样:
这与您的第二个代码片段遵循相同的比较模式。你知道吗
下面是一个示例的变体(嵌套for循环,运行时间:(n-1)n/2),使用enumerate:
输出:
使用itertools,它可以写得更短:
相关问题 更多 >
编程相关推荐