3

次の 3 つの整数値があります。

id        # identifies the pair
entropy   # gives entropy information
len       # basicly the length of a string

ここで、これらの値の多くを保存し、全体のエントロピーが最も高く、長さの値が 10 を超える上位 10 個を選択します。n

from collections import defaultdict

d = defaultdict(list)

for id, entropy, len in generateValues:
    d[id].append(entropy)
    d[id].append(len)

# now get the top 10 values

これは簡単にできますか?

4

2 に答える 2

1

あなたの問題を解決するために、引数をsortedサポートしています:key

filtered = ((k,v) for k,v in d.iteritems() if v[1] > n) # or filter(d.iteritems(), lambda t: t[1][1] > n)
topTen = sorted(filtered, key=lambda t: t[0], reversed=true)[:10]

これは、私見ですが、heapqを使用したソリューションよりも読みやすい(そして同等の効率です)。

于 2013-05-15T13:16:12.240 に答える