PYTHON - 查找数组中每10个整数的最大值

nik*_*i_c 4 python arrays xrange python-2.x

我有一个很大的整数数组,我需要在数组中将每10个整数及其对应的索引中的最大值打印为一对.

ex. (max_value, index of max_value in array)
Run Code Online (Sandbox Code Playgroud)

我可以在前10个整数中成功找到最大值和相应的索引,但是我在遍历整个数组时遇到问题.

我尝试过使用:

a = some array of integers

split = [a[i:i+10] for i in xrange(0, len(a), 10)] 

for i in split:
    j = max(i) 
    k = i.index(max(i))
    print (j,k)
Run Code Online (Sandbox Code Playgroud)

用这种方法的问题是,它分裂我的数组到10所以max_values是正确的块,但指标是不准确的(所有的指标都是0-10之间).我需要找到这样那并不是"的一种方式t将我的数组拆分成块,以便保留原始索引.我确信有一种更简单的循环方式来查找最大值,但我似乎无法弄明白.

Mir*_*ber 5

您需要计算当前窗口之前出现的元素数.这将完成工作:

a=list(range(5,35))
split = [a[i:i+10] for i in xrange(0, len(a), 10)] 

for ind,i in enumerate(split):
    j = max(i) 
    k = i.index(j)
    print (j,k+ind*10)
Run Code Online (Sandbox Code Playgroud)

这打印

(14, 9)
(24, 19)
(34, 29)
Run Code Online (Sandbox Code Playgroud)


Har*_*ren 5

对当前代码的一个小修改:

a = some array of integers

split = [a[i:i+10] for i in xrange(0, len(a), 10)] 

for index, i in enumerate(split):
    j = max(i) 
    k = i.index(max(i))
    print (j, k+10*index)
Run Code Online (Sandbox Code Playgroud)