Re: Tough sorting problem: or, I'm confusing myself



On Apr 11, 9:39 pm, Raymond Hettinger <pyt...@xxxxxxx> wrote:

The overall algorithm looks about right.
The inner-loop could be tighted-up a bit.
And you could replace the outer sort with a heap.

best2 = {}
for i in itertools.combinations(range( 2**m), n-1):
    scorelist = []
    for j in range( 2**m ):
        if j not in i:
            k = tuple(sorted(i + (j,)))
            scorelist.append((j, res[k][k.index(j)]))
    best2[i] = heapq.nlargest(2, scorelist,
key=operator.itemgetter(1))

Raymond

Thanks for the ideas... I should have seen the k = tuple(sorted(i +
(j,))). I'm not sure a heap will help much, and at least to me,
doesn't improve readability.

Thanks for taking a look, I appreciate it!

David
.