use*_*499 15 python search list min
我期待找到数组中的最低正值及其在列表中的位置.如果列表中的值重复,则只关注FIRST实例.这就是我所拥有的,它包括我想要的但包括0.
print "Position:", myArray.index(min(myArray))
print "Value:", min(myArray)
Run Code Online (Sandbox Code Playgroud)
例如,如果,
myArray = [4, 8, 0, 1, 5]
然后位置:2,值:0
我希望它呈现位置:3,价值:1
Ffi*_*ydd 34
您可以使用生成器表达式用min
.这将设置m
为a
大于0 的最小值.然后用于list.index
查找此值第一次出现的索引.
a = [4, 8, 0, 1, 5]
m = min(i for i in a if i > 0)
print("Position:", a.index(m))
print("Value:", m)
# Position: 3
# Value: 1
Run Code Online (Sandbox Code Playgroud)
the*_*eye 10
您可以像这样使用min
功能和enumerate
功能
result = min(enumerate(a), key=lambda x: x[1] if x[1] > 0 else float('inf'))
print("Position : {}, Value : {}".format(*result)
# Position : 3, Value : 1
Run Code Online (Sandbox Code Playgroud)
这样可以确保,如果值大于0
,则使用该值进行最小值比较,否则使用最大可能值(float('inf')
).
由于我们与项的实际索引一起迭代,因此我们不必使用另一个循环来查找实际索引.