-2

次のようにハッシュ(辞書)を作成したい: dic = {2 => "ABC", 3 => "DEF"}. Python では、コードは次のようになります。

text = "abcdef"  

for letter in text.lower():
    for group, number in dic.items(): 
        if letter in group:

text de code 内の各文字について、ディクショナリ内で同じ文字を探します。ルビーでこれを行うにはどうすればよいですか?何か案は?

4

3 に答える 3

0
test = "abcdef"
dic = {2 => "ABC", 3 => "DEF"}
test.each_char { |s|
    dic.each { |key, val|
        puts key if val.include?(s.upcase)          
    }
}

それはあなたが意味するものですか?

于 2013-06-01T04:41:26.270 に答える
0
text = "abcdef"
hash = {2 => "ABC", 3 => "DEF"}
text.upcase.each_char do |c|
  puts hash.keys.find{|k| hash[k].include?(c.upcase)}
end

これは以下を出力します:

2
2
2
3
3
3

大文字と小文字を区別しない検索が必要なようですので、upcase両方のデータ ソースを呼び出します。が小文字であることが保証されている場合text、またはハッシュ値が大文字であることが保証されている場合、それらのいずれかを削除できます。これが既存の回答に勝る利点の1つは、一致する値が見つかるまでのみ検索することです。これはあなたが望むものだと思います。nil一致する値が見つからない場合、検索は戻ります。

于 2013-06-01T05:11:52.860 に答える