l = [0,1,2,0,3]
我想找到l的最小数字及其索引,应该给出
(0,0),(0,3)
我所做的是
def find_smallest(xy):
return (np.min(xy), xy.index(min(xy)))
find_smallest([0,1,2,0,3])
给出(0,0)
答案 0 :(得分:2)
def find_smallest(xy):
minimum=np.min(xy)
index=0
indexes=[]
minimums=[]
for item in xy:
if item==minimum:
minimums.append(minimum)
indexes.append(index)
index+=1
return tuple(minimums),tuple(indexes)
find_smallest([0,1,2,0,3])
这个应该有效
答案 1 :(得分:1)
一个例子:
l = [0,1,2,0,3]
def find_smallest(xy):
smallest = min(xy)
return [(j, i) for i, j in enumerate(xy) if j==smallest]
find_smallest(l)
答案 2 :(得分:0)
您只返回第一个匹配项,您应该在迭代第一个列表时建立一个列表。
def find_smallest(xy):
m = None
matches = []
for i, n in enumerate(xy):
if n == m:
matches.append((n, i))
if m is None or n < m:
m = n
matches = [(n, i)]
return matches
print(find_smallest([0,1,2,0,3])) # [(0, 0), (0, 3)]
print(find_smallest([6,0,1,2,0,3])) # [(0, 1), (0, 4)]