找出一个多维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点
#找出一个多维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点 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)