Skip to main content
 首页 » 编程设计

python之如何使用列表中的函数获取最小奇数

2025年05月04日10sharpest

我正在尝试使用 python 获取最小奇数。我使用 lambda、循环和其他方法来获得最小奇数,但我无法使用函数来获得它。这是我的代码

z= [1,8,-4,-9] 
 
def min_odd(x): 
    for i in x: 
        if (i%2!=0): 
    return min(i) 
 
y = min_odd(z) 
print (y) 

有人能告诉我我在这里遗漏了什么吗?

请您参考如下方法:

min() 函数需要一个类似于列表的可迭代对象,然后它将从中生成最小的元素。

例如min([1,0,3]) 给出 0。

因此,如果你想使用它,你必须创建一个奇数列表(或其他可迭代的),然后你可以将其传递给它:

def min_odd(x): 
    odds = [] 
    for i in x: 
        if i % 2 != 0: 
            odds.append(i) 
    return min(odds) 

请注意,我们还可以使用列表推导式:

def min_odd(x): 
    return min([i for i in x if i % 2 != 0]) 

两者都有效。


另一种方法是将当前的最小奇数值存储在一个变量中,并在遇到较小的奇数值时更新此变量:

def min_odd(x): 
   min_v = float('inf') 
   for i in x: 
      if i % 2 != 0 and i < min_v: 
         min_v = i 
   return min_v