gpt4 book ai didi

python - 等同于 Python 中的 inject()?

转载 作者:太空狗 更新时间:2023-10-29 17:11:05 25 4
gpt4 key购买 nike

在 Ruby 中,我习惯于使用 Enumerable#inject 遍历列表或其他结构,然后得出一些结论。例如,

[1,3,5,7].inject(true) {|allOdd, n| allOdd && n % 2 == 1}

判断数组中的每个元素是否为奇数。在 Python 中完成同样的事情的合适方法是什么?

最佳答案

要确定每个元素是否为奇数,我会使用 all()

def is_odd(x): 
return x%2==1

result = all(is_odd(x) for x in [1,3,5,7])

然而,一般来说,Ruby 的inject 最像Python 的reduce()。 :

result = reduce(lambda x,y: x and y%2==1, [1,3,5,7], True)

all() 在这种情况下是首选,因为一旦它找到类似 False 的值,它就能够跳出循环,而 reduce 解决方案必须处理整个列表才能返回答案。

关于python - 等同于 Python 中的 inject()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1070926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com