2012-01-29 67 views
-1

請原諒我的無知,但我將如何開始着手創建以下類型的詞典:用戶生成的嵌套字典(哈希值)在Ruby中

"please give your new library a name" 
French 

什麼,我想要的是然後創建一個新的哈希作爲價值的關鍵法國{ "French" => "{}" }

根據當時價值鑰匙法國可能被更新的樣子{ {"hello" => "bonjour", "bonjour" => "hello"}, {"good" => "bon", "bon" => "good}, ... }

我希望你能看到什麼,我試圖做的。也許我正在以完全錯誤的方式去解決這個問題?

編輯...可能是沿着這些線?

puts "please give your new library a name" 
user_libs = Hash.new 
sub = gets.chomp 
user_libs[sub] = {} 
puts user_libs 
+0

我不明白你的問題是什麼。您的代碼顯示您知道如何創建由用戶輸入生成的新哈希。唯一缺失的部分是用英文/法文字對自動填充它。你的問題是如何神奇地想出這個基於單詞「French」的配對清單? – Phrogz 2012-01-29 15:07:03

+0

我的代碼表明,我繼續試圖在任何人回答之前解決如何做到這一點。因此編輯...我用「法語」這個詞作爲例子,因爲我沒有/仍然不理解語法。沒有魔法我害怕;)我的問題有兩個方面,這是一種存儲數據的好方法,而且它很棒 - 我現在如何在創建嵌套字典後編輯它。我發現ruby代碼比Python更難找到,但也許這只是我。 – beoliver 2012-01-29 16:58:26

回答

1
print "please give your new library a name: " 
name = gets.chomp 
h = {name => {}} 
print "enter word pairs: " #hello bonjour 
while (input = gets.chomp) != "" 
    k,v = input.split(" ") 
    h[name][k] = v 
end 
p h 
+0

是'h [name] [k] = v'如何進入嵌套散列的語法? – beoliver 2012-01-29 17:00:22

+0

是的。實際上它由兩個方法組成,'#[]'和'#[] ='。確切地說, – steenslag 2012-01-29 17:38:21

+0

!完美...我很高興你明白! :) – beoliver 2012-01-29 17:41:20