python-查找鞍点

【题目描述】对于给定5X5的整数矩阵,设计算法查找出所有的鞍点的信息(包括鞍点的值和行、列坐标,坐标从1开始)。 提示:鞍点的特点:列上最小,行上最大。
 
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】输入5行5列整数,同行数据间以空格为间隔。
【输出格式】在一行中以以下格式输出矩阵中的所有鞍点,每个鞍点的显示格式为: [<鞍点的行坐标>,<鞍点的列坐标>,<鞍点的值>]
【输入样例】11 3 5 6 9 12 4 7 8 10 10 5 6 9 11 8 6 4 7 8 15 10 11 20 25
【输出样例】[4,1,8][4,5,8]
 
代码:
matrix = []
matrix2 = []
matrix3 = []
for i in range(5):
    a = input()
    a1 = a.split(" ")  # a1中的元素都是字符串,需要转换
    for i in a1[::]:
        if i == '':
            a1.remove(i)  # 去掉空元素
    a1 = [int(x) for x in a1]  # 将其中的元素转为int类型,方便排序
    matrix.append(a1)  # 插入到一个新列表

for i in range(0, 5):
    matrix2 = []
    for j in range(0, 5):
        matrix2.append(matrix[j][i])
    matrix3.append(matrix2)  # 将每一列收集起来组合成新的列表

for i in range(0, 5):
    for j in range(0, 5):
        if matrix[i][j] == max(matrix[i]):  # 判断是否为该行最大值
            if matrix[i][j] == min(matrix3[j]):  # 判断是否为该列最小值
                print([i + 1, j + 1, matrix[i][j]], end="")

# 11 3 5 6 9
# 12 4 7 8 10
# 10 5 6 9 11
# 8 6 4 7 8
# 15 10 11 20 25

 

 

posted @ 2022-03-18 22:18  睡觉不困  阅读(681)  评论(0编辑  收藏  举报