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