2016-10-25 59 views
-1

我怎么找到这个列表中的每一列的最大数量,请我想通怎么办行最大数量,但我不明白柱体部如何在多维列表的列中打印最大值?

like how it is done here

import random as rd 
multlst = [[x for x in range(1,5+1)] for y in range(1,5+1)] 
def create(): 
    for i in range(len(multlst)): 
     for j in range(len(multlst[i])): 
      multlst[i][j]= rd.randint(-100,100) 

return multlst 


def row(): 
    for i in range(0,len(multlst)): 
     maxnum = max(multlst[i]) 
     print("The maximum value in row %s is %s"%(i,maxnum)) 


def col(): 
## how do I find the maximum value in columns of the list 


def main(): 

    create() 
    print('\n'.join([''.join(['{:4}'.format(item) for item in row]) 
    for row in multlst])) 
    row() 
    col() 


main() 
+0

,什么是打印速度比打印其他多维表( '\ n'.join([' '更Python的方式加入([' {:4}'。格式(项目)行中]] – Ironping

回答

0

由于您的多维列表似乎是一个矩阵,你可能会更好使用numpynumpy.max()

例如:

import numpy as np 
# will return a list of the maximum in each column 
np.max(your_array, axis=0) 
# will return a list of the maximum in each row 
np.max(your_array, axis=1) 

另外,如果你想保持使用标准库,你可以使用一个发电机方法您max调用内部,并要求每个后续行中的相同指标值。例如:

for col_idx in range(number_of_columns): 
    maximum = max(multlst[row_idx][col_idx] for row_idx in range(number_of_rows)) 
    print("The maximum value in column %s is %s"%(col_idx,maximum)) 

或简化。

for col_idx in range(number_of_columns): 
    maximum = max(row[col_idx] for row in multlst) 
    print("The maximum value in column %s is %s"%(col_idx, maximum)) 
+0

谢谢我只是新的python,所以我没有使用numpy模块,但简化的答案是我现在需要的 – Ironping