将Python代码转换为Ruby

时间:2013-09-21 01:47:00

标签: python ruby

好的,我是ruby的新手,我需要一些好的建议。 Python代码:

 return [x for x in list if x == something]

很抱歉没有填写这些东西,但我真的不能,因为我这个问题与我听到的代码的其他部分有关.map可以做到这一点,但我不知道如何。任何人都可以向我解释这一点,如果它变成真的我可以选择一个值吗?这是另一个例子,但是一个简单的例子应该是有意义的

def test():
    lists = ['dave','austin','bob','jimmy','john','jimmy']
    return [x for x in lists if x == 'jimmy']

该代码返回

['jimmy','jimmy']

我将第一个示例留空的部分原因是因为我希望能够为将来适用于此示例的代码执行此操作。因此,如果有人能告诉我如何做到这一点,这将是非常好的红宝石方式,因为我一直在混淆我的自我试图找出它。

2 个答案:

答案 0 :(得分:1)

也许Enumerable#select就是你所追求的?

lists = ['dave','austin','bob','jimmy','john','jimmy']
lists.select{|x| x == 'jimmy'} # => ["jimmy", "jimmy"]

答案 1 :(得分:0)

是。另外,除了“选择”功能外,您可能还想使用“地图”。 Select就像“if”子句,“map”就像是Python列表理解中的第一个子句。

a = [1, 3, 4, 5, 6, 7, 8] b = a.select{|i| (i % 2).zero?}.map{|i| (i * 3)} puts b # 12 18 24