列表中的最小数字-Python
我正在尝试编写一个函数,它接受列表输入并返回该列表中最小数字的索引。 比如说,列表中的最小数字-Python,python,while-loop,Python,While Loop,我正在尝试编写一个函数,它接受列表输入并返回该列表中最小数字的索引。 比如说, minPos( [5,4,3,2,1] ) → 4 当我运行我的函数时,我得到一个列表索引错误,有人能帮我吗?谢谢我无法使用内置函数min() def最小位置(L): 下标=0 氢=1 SmallestNumber=L[下标] 当L[下标]
minPos( [5,4,3,2,1] ) → 4
当我运行我的函数时,我得到一个列表索引错误,有人能帮我吗?谢谢我无法使用内置函数min()
def最小位置(L):
下标=0
氢=1
SmallestNumber=L[下标]
当L[下标]L[下标+氢]:
下标+=1
返回最小号
def main():
打印MinPos([-5,-4])
因为您已经知道如何找到最小值,所以只需将该值输入index()函数,即可在列表中获得该值的索引。即
>>> n = ([5,4,3,2,1])
>>> n.index(min(n))
4
这将返回列表中最小值的索引。请注意,如果存在多个最小值,它将返回第一个。因为您已经知道如何找到最小值,只需将该值输入index()函数即可获得列表中该值的索引。即
>>> n = ([5,4,3,2,1])
>>> n.index(min(n))
4
这将返回列表中最小值的索引。请注意,如果存在多个极小值,它将返回第一个极小值。可能是这样的:
>>> def min_pos(L):
... min = None
... for i,v in enumerate(L):
... if min is None or min[1] > v:
... min = (i,v)
... return min[0] if min else None
>>> min_pos([1,3,4,5])
0
>>> min_pos([1,3,4,0,5])
3
编辑:如果列表为空,则返回None(无)可能类似以下内容:
>>> def min_pos(L):
... min = None
... for i,v in enumerate(L):
... if min is None or min[1] > v:
... min = (i,v)
... return min[0] if min else None
>>> min_pos([1,3,4,5])
0
>>> min_pos([1,3,4,0,5])
3
编辑:如果列表为空,则返回None我建议对…和
enumarate()使用:
data=[6,3,2,4,2,5]
尝试:
索引,最小值=0,数据[0]
对于i,枚举中的值(数据):
如果值<最小值:
索引,最小值=i,值
除索引器外:
索引=无
打印索引
#Out[49]:2
编辑添加了防止空数据的保护措施
我建议对…
和枚举()使用:
data=[6,3,2,4,2,5]
尝试:
索引,最小值=0,数据[0]
对于i,枚举中的值(数据):
如果值<最小值:
索引,最小值=i,值
除索引器外:
索引=无
打印索引
#Out[49]:2
编辑添加了防止空数据的保护
您能重新输入代码吗?此外,函数名应该是“min_pos”,而所有变量都应该是小写的,这是Python中的一个自定义值。请重新输入代码好吗?此外,函数名应为“min_pos”,而所有变量应为小写,这是Python中的自定义。OP表示不能使用内置的min函数。OP表示不能使用内置的min函数。空列表中断(None[0]
)空列表中断(None[0]
)