假设我有一个 4x4 数组,每一行都已按最小值排序。我想创建一个列表,其中包含每个数组行的最小值而不重复值。因此,如果列表中已经存在最小值,我们应该取下一个最小值并将其添加到列表中。
数组的每一行都已按最小值排序
set=[ [1,10,20,30],[10,50,60,70],[10,20,50,60],[1,20,25,65] ]
A=np.asarray(set) #A[0,0] = 1 ; A[3,3] = 65
minval=[] #list to append min values to
所以最终列表将是[1,10,20,25]
我首先尝试迭代 A[i,j] 并附加到 minval(如果它不在 minval 中),但这甚至不起作用。之后,一旦我们从 A[i] 追加一个值,我就不知道如何打破循环
minval=[]
for i in A: #expect A[0] through A[3]
for j in A[i]: #expect A[0,0] through A[3,3]
minval.append(A[i,j]) if A[i,j] not in minval else minval
这已经给了我一个错误,因为 i 的第一个值是一个数组,而不是像我期望的那样 y[0]
由于每行已经按最小值排序,我们可以这样做:
list = [ [1, 10, 20, 30], [10, 50, 60, 70], [10, 20, 50, 60], [1, 20, 25, 65] ]
new_list = []
for row in list:
for col in row:
if col not in new_list:
new_list.append(col)
break