私の目的は、1 つのリストでいくつか (この例では =3) の最大値を見つけ、fourire
リスト内の位置を特定し、他のリストで対応する (position_wise) 値を取得することですfreq
。したがって、出力は次のようになります。
2. 27.
9. 25.
4. 22.
添付の python は正常に動作しています。
**私はnumpy配列を扱っているので、index()が機能していないことに注意してください....
以下を改善する方法はありますか?
import heapq
freq = [ 2., 8., 1., 6., 9., 3., 6., 9., 4., 8., 12.]
fourire = [ 27., 3., 2., 7., 4., 9., 10., 25., 22., 5., 3.]
out = heapq.nlargest(3, enumerate(fourire), key=lambda x:x[1])
elem_fourire = []
elem_freq = []
for i in range(len(out)):
(key, value) = out[i]
elem_freq.extend([freq[key]])
elem_fourire.extend([value])
for i in range(len(out)):
print elem_freq[i], elem_fourire[i]