1

好的,我是 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']

我将第一个示例留空的部分原因是我希望能够为将来适用于此示例的代码执行此操作。因此,如果有人可以向我展示如何以红宝石方式做到这一点,那就太好了,因为我一直在困惑自己试图弄清楚它。

4

2 回答 2

1

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

lists = ['dave','austin','bob','jimmy','john','jimmy']
lists.select{|x| x == 'jimmy'} # => ["jimmy", "jimmy"]
于 2013-09-21T01:56:35.440 回答
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

于 2014-07-31T21:57:13.723 回答