我使用了Project Gutenberg#29765英文字典文件,重新格式化了它,并创建了一些大的哈希(A到D等)。
我正在使用这样的查找工作正常并在您输入单词时显示定义 -
$look = gets.chomp
$look = $look.upcase
puts " "
if (/^[A-D]/).match($look)
puts dicta[$look]
问题是某些单词有多个条目 - 而不是广泛修改113,000个条目字典文件,我想我只是修改了这个副本 -
dicta = { "BARE" => "def 1", "BARE" => "def 2"}
...到此
dicta = { "1| BARE" => "def 1", "2| BARE" => "def 2"}
我会添加某种类型的第二次查找以找到这些副本
elsif (/^[0-9] + {user input}) ... (something?)
我需要什么才能找到并显示BARE的重复项?
我强烈怀疑这是构建所有这一切的完全错误的方法,但是......任何帮助都会非常感激。提前谢谢。
答案 0 :(得分:2)
这个{"BARE" => ["def 1", "def 2"]}
似乎是比你选择的更好的数据结构,把重复项放在列表中仍然会使你的哈希查找O1 - bjhaid
h
而“BARE”只有一个定义,则您可以拥有h["BARE"] = ["def 1"]
或h["BARE"] = "def "
。在后一种情况下,您需要检查if h["BARE"].is_a? Array..<multiple definitions> else...<single definition>...end
。 - Cary Swoveland