我正在尝试使用 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
