zoukankan      html  css  js  c++  java
  • 找出一个多维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点

    #找出一个多维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点
    list1 = [
        [2,4,6,7],
        [1,3,5,8],
        [4,6,7,9]]    
    
    row_maxlist=[]
    column_minlist=[]
    for i in range(len(list1)):
        max_row=max(list1[i])
        print('max_row:',max_row)
        for j in range(len(list1[i])):
            if list1[i][j]==max_row:
                row_maxlist.append((i,j))
    
    #把二维列表转置了一下,用同样的方法求各列最小值;然后记录(j,i)
    list2=[]
    for j in range(len(list1[0])):
        temp=[]
        for i in range(len(list1)):
            temp.append(list1[i][j])
        list2.append(temp)
    print(list2)
    
    for i in range(len(list2)):
        min_row=min(list2[i])
        for j in range(len(list2[i])):
            if list2[i][j]==min_row:
                column_minlist.append((j,i))  ##然后记录(j,i)
    
    print('row_maxlist',row_maxlist)
    print('column_minlist',column_minlist)
    result=set(row_maxlist)&set(column_minlist) ##求交集
    
    print(result)
  • 相关阅读:
    阅读笔记(四)——《代码整洁之道》1
    阅读笔记(一)——《需求工程——软件建模与分析》一
    数据提取
    HIVE数据清洗练习
    第八周hadoop-MapReduce
    小程序新增页面导航栏
    个人课程总结
    第十六周总结

    排序
  • 原文地址:https://www.cnblogs.com/xiaoxiao075/p/10267119.html
Copyright © 2011-2022 走看看