gpt4 book ai didi

Python 等价于 Ruby Array.each 方法

转载 作者:IT老高 更新时间:2023-10-28 21:15:05 26 4
gpt4 key购买 nike

在 Python 中,什么相当于 Ruby 的 Array.each 方法? Python 是否有一个漂亮而简短的闭包/lambda 语法?

[1,2,3].each do |x|
puts x
end

最佳答案

Does Python have a nice and short closure/lambda syntax for it?

是的,但在这种情况下你不需要它。

与该 Ruby 代码最接近的等价物是:

new_values = map(print, [1, 2, 3])

当你已经有一个函数时,这看起来很不错,比如 print。当你有一些任意表达式并且你想在 map 中使用它时,你需要使用 deflambda ,像这样:

new_values = map(lambda x: print(x), [1, 2, 3])

这就是你显然想要避免的丑陋。 Python 有一个很好的方法来避免它:理解:

new_values = [print(x) for x in values]

但是,在这种情况下,您只是尝试为每个值执行一些语句,而不是为每个值累积新值。所以,虽然这会起作用(你会得到一个 None 值的列表),但它绝对不是惯用的。

在这种情况下,正确的做法是明确地编写它——没有闭包、没有函数、没有推导式,只有一个循环:

for x in values:
print x

关于Python 等价于 Ruby Array.each 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18970196/

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