我的目标是在一个列表中找到几个(在此示例中为 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]