Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Ruby是否有像Python的列表推导一样的东西?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Python有一个很好的功能:
print([j**2 for j in [2,3,4,5]]) # => [4,9,16,25]

在Ruby中,它更简单:

puts [2,5].map{|j| j**2}

但是如果是关于嵌套循环Python看起来更方便.

在Python中,我们可以这样做:

digits = [1,2,3]
chars = ['a','b','c']    
print([str(d)+ch for d in digits for ch in chars if D >= 2 if ch == 'a'])    
# => ['2a','3a']

Ruby中的等价物是:

digits = [1,'c']
list = []
digits.each do |d|
    chars.each do |ch|
        list.push d.to_s << ch if D >= 2 && ch == 'a'
    end
end
puts list

Ruby有什么类似的东西吗?

解决方法

Ruby的常见方法是正确组合 EnumerableArray方法来实现相同的方法:
digits.product(chars).SELEct{ |d,ch| d >= 2 && ch == 'a' }.map(&:join)

这只有4个左右的字符比列表理解更长,就像表达式(IMHO当然,但是由于列表的理解只是列表monad的一个特殊应用程序,人们可以认为可能使用Ruby的集合方法充分重建),而不需要任何特殊语法.

大佬总结

以上是大佬教程为你收集整理的Ruby是否有像Python的列表推导一样的东西?全部内容,希望文章能够帮你解决Ruby是否有像Python的列表推导一样的东西?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。