繁体   English   中英

在python列表中找到最小值

[英]Find the minimum value in a python list

我想在列表中找到最小值。 我知道我可以使用min() ,但是我正在学习Python并想自行实现该功能:

x=[2,3,5,9,1,0,2,3]
z=len(x)-1
i=0
for i in range(z):
    if x[i]<x[i+1]:
        y=x[i]
    else:
        y=x[i+1]
print(y)

虽然找不到最低要求。 如何更改此值以找到列表x的最小值?

您的问题是您只比较列表中彼此相邻的值。 相反,您的程序应记住您到目前为止已检查过的最小值,并将其他值与之进行比较。

那是你的提示!

尝试停止使用整数索引列表。 遍历列表要容易得多。

x = [2,3,5,9,1,0,2,3]

def my_min(sequence):
    """return the minimum element of sequence"""
    low = sequence[0] # need to start with some value
    for i in sequence:
        if i < low:
            low = i
    return low

print my_min(x)

您根本没有在迭代过程中跟踪最小值。 因此,实际上在您的代码中发生的事情是返回了最后两个值(在这种情况下为2和3)中的最小值。

要纠正此问题,请保持目前为止的最小值,如果迭代中的值小于该最小值,则对其进行更新。 然后,在迭代结束时,它将保留列表的最小值。

您正在检查相邻的值并进行比较以查看哪个更大,并将其分配给y。 如果要在列表中找到最小值,则它必须是通用最小值,就像所有值中的最小值一样。 因此,应检查当前最小的最小值,而不是检查两个相邻元素之间的最小元素,如果遇到的元素小于最小值,则该元素变为最小值。

添加一个临时变量(临时变量),在这里将存储x[0] and x[1]的最小值,然后是x[1] and x[3]的最小值。 干杯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM