Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的函数式编程:查找列表中的最小奇数_Python_Algorithm_Functional Programming - Fatal编程技术网

Python中的函数式编程:查找列表中的最小奇数

Python中的函数式编程:查找列表中的最小奇数,python,algorithm,functional-programming,Python,Algorithm,Functional Programming,如果问题陈述说我不能使用for和if,我如何在整数列表中找到最小的奇数 您可以使用过滤器和min: s = [4, 2, 3, 4, 7, 1] smallest_odd = min(filter(lambda x:x%2 != 0, s)) 输出: 1 为什么要考虑< > > < < /代码>?/p> min(numbers, key=lambda n: (n&1==0, n)) 你可以用 ints = [2,6,8,4,6 ] srt = sorted(ints)

如果问题陈述说我不能使用forif,我如何在整数列表中找到最小的奇数

您可以使用
过滤器
min

s = [4, 2, 3, 4, 7, 1]
smallest_odd = min(filter(lambda x:x%2 != 0, s))
输出:

1

为什么要考虑< <代码> > <代码> > <代码> < < /代码>?/p>
min(numbers, key=lambda n: (n&1==0, n))
你可以用

ints = [2,6,8,4,6  ]

srt = sorted(ints)

while len(srt) > 0 and not srt[0] % 2:
    srt = srt[1:]

s = None
while len(srt):
    s = srt[0]
    srt=[]

print(s)
规避规则。您可以对列表进行排序,丢弃前面的偶数值

结果列表为空或前面有值

第二个while仅在列表包含元素且列表重置为空时输入(该值为false,不会租用while)


它将打印“无”或最低的非偶数。

您了解什么是函数式编程吗?为什么要限制自己不使用for或if语句?赔率=[i for i in lints if(i%2)==1];min(赔率)@Gary02127-你使用了一个
if
min(过滤器((2)。\uurmod\uul,l))
@PatrickArtner-我想我可以摆脱它,因为它是嵌套的…:)因为它要快很多?将
min(如果num%2==0,则num代表num)
与您的解决方案进行比较,您将看到速度提高了两倍/三倍。即使我们在计时环境之外定义了键函数,这仍然是正确的。