2016-10-09 61 views
1

我需要隨機訪問英文字典文件(「/ usr/share/dict/words」)中的每個單詞都在一行中的所有單詞。如何將文件中的所有行讀入元組?

現在,我想以隨機順序訪問所有這些單詞,爲此我想將文件讀入允許隨機訪問的元組中。

我知道我可以讀取該文件到像這樣的列表:

words = 
    File.stream!("/usr/share/dict/words") 
    |> Stream.map(&String.trim_trailing/1) 
    |> Enum.to_list 

但是,這並不讓我訪問以隨機順序的話。我怎麼能讀取文件到一個元組呢?

(或者,如果有另一種方式來做到這一點即讀隨機順序的話,請讓我知道)

+1

究竟你「隨機」和「隨機訪問」是什麼意思?我相當確定一個Tuple不是你想要的。 –

回答

1

List.to_tuple列表轉換成一個元組,所以下面的工作:

words = 
    File.stream!("/usr/share/dict/words") 
    |> Stream.map(&String.trim_trailing/1) 
    |> Enum.to_list 
    |> List.to_tuple 
1

如果你想他們在一個隨機的順序,怎麼樣:

words = 
    File.stream!("/usr/share/dict/words") 
    |> Stream.map(&String.trim_trailing/1) 
    |> Enum.to_list 
    |> Enum.shuffle 
相關問題