簡體   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