我需要随机访问英文词典文件中的所有单词(“/ usr / share / dict / words”),其中每个单词都在一行中。
现在,我想以随机顺序访问所有这些单词,为此我想将该文件读入允许随机访问的元组。
我知道我可以将文件读入这样的列表:
words =
File.stream!("/usr/share/dict/words")
|> Stream.map(&String.trim_trailing/1)
|> Enum.to_list
但这不允许我以随机顺序访问这些单词。我怎么能把文件读成一个元组?
(或者,如果有其他方法可以做到这一点,即按随机顺序阅读这些文字,请告诉我)
答案 0 :(得分:1)
List.to_tuple将列表转换为元组,因此以下工作:
words =
File.stream!("/usr/share/dict/words")
|> Stream.map(&String.trim_trailing/1)
|> Enum.to_list
|> List.to_tuple
答案 1 :(得分:1)
如果您想以随机顺序使用它们,那么:
words =
File.stream!("/usr/share/dict/words")
|> Stream.map(&String.trim_trailing/1)
|> Enum.to_list
|> Enum.shuffle