2013-09-21 85 views
0

好吧,我是Ruby新手,我需要一些很好的建議。 Python代碼:將Python代碼轉換成Ruby

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'] 

部分爲什麼我離開了我的第一個例子空白的原因是因爲我希望能夠做到這一點的將來的代碼適用於這個例子。所以如果任何人都能告訴我如何做到這一點,那將是非常棒的紅寶石方式,因爲我一直在困惑着我的自我想法。

回答

1

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

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

是的,謝謝這正是我需要你生龍活虎起來真的很好,我不知道爲什麼我無法找到該說,一定是用壞在互聯網上搜索任何東西條款或東西,但再次感謝。 – anakin

+0

沒問題,我現在正在學習Python,所以我可以同情:-) –

+0

哦,我看到祝好運。 – anakin

0

是的。另外,除了「選擇」功能外,你也可以使用「地圖」。選擇就像「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