关于#python#的问题

现给定一个 n x m矩阵 请先找出每列元素的最大值 合计m个 然后输出这 m个值中的最小值。矩阵用列表表示
例:list1=[[1,2][3,4][5,6]]表示的是一个3*2的矩阵
1 2
3 4
5 6
每列的最大值分别为5和6,最小值为5
即:最后程序的输入是一个列表,输出的是找出的每列的最大值和这些最大值中的最小值。

如果是要从输入获取矩阵的值,可以先获取n和m的值,然后在循环中获取nxm列矩阵的输入,然后依然循环遍历列表的每一行的同一列以寻找最大值,最后在用min函数计算每一列最大值中的最小值即可,代码如下:


n=int(input("请输入n的值:"))
m=int(input("请输入m的值:"))
list1=[]


# 获取n行m列的矩阵值
for i in range(n):
    mlist=[]
    for j in range(m):
        num = int(input("请输入第"+str(i+1)+"行第"+str(j+1)+"列的值:"))
        mlist.append(num)
    list1.append(mlist)

mmax=[]  # 存储每列的最大值
for i in range(m):
    mnum =  list1[0][i]
    
    for j in  range(n): # 寻找每列的最大值
       # print("list[",j,"][",i,"]=",list1[j][i],'mnum=',mnum,'\n')
        
        if mnum< list1[j][i]:
           # print("mnum=",mnum,"list[",j,"][",i,"]=",list1[j][i],'\n')
            mnum=list1[j][i]
    mmax.append(mnum)  # 把每列的最大值添加到列表       
        
        


#print(list1)
#打印每列的最大值,并打印最大值中的最小值 
print("每列的最大值分别为:",mmax,",最小值为;",min(mmax))

    


        





img

下面定义了一个 min_of_maxes 函数,用于求出一个矩阵的每列的最大值中的最小值。它首先计算出矩阵的列数,然后遍历每一列,找出每列的最大值并存储在 maxes 列表中。最后,它遍历 maxes 列表,找出最大值中的最小值并返回。

def min_of_maxes(matrix: List[List[int]]) -> int:
    # 计算矩阵的列数
    num_columns = len(matrix[0])
    
    # 初始化一个列表,存储每列的最大值
    maxes = [0] * num_columns
    for i in range(num_columns):
        # 遍历每一列,找出最大值
        for row in matrix:
            maxes[i] = max(maxes[i], row[i])
    
    # 找出最大值中的最小值
    min_of_maxes = float('inf')
    for max_val in maxes:
        min_of_maxes = min(min_of_maxes, max_val)
    
    return min_of_maxes

list1 = [[1, 2], [3, 4], [5, 6]]
print(min_of_maxes(list1)) # 输出: 5

list2 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(min_of_maxes(list2)) # 输出: 4
def find_min_max(matrix):
  # 取出矩阵的列数
  column_count = len(matrix[0])
  # 初始化一个列表来存每列的最大值
  column_maxes = [0] * column_count
  
  # 遍历矩阵的每一行
  for row in matrix:
    # 遍历这一行的每一列
    for i, value in enumerate(row):
      # 如果当前列的最大值小于这一列的值,就更新最大值
      if column_maxes[i] < value:
        column_maxes[i] = value
  # 返回每列最大值的最小值
  return min(column_maxes)

# 例如:
matrix = [[1, 2], [3, 4], [5, 6]]
print(find_min_max(matrix))  # 输出: 5