2016-10-25 58 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