2015-12-31 9 views
5

同じサイズの2つのリストをキー値のペアのマップに結合する最良の方法を見つけようとしています。同じサイズの2つのリストをエリキシルのキー値のペアに変換する

私は、CSVとローSQLリストのいくつかの並べ替えを返すローSQLクエリでは、このケースをしばらく処理するために同じ関数を使用しています。

これは私が例えば

Enum.zip(list1, list2) |> Enum.into(%{}) 

を使用してきた機能である:

# For CSVS 
header = ["column1","column2","column3"] 
rows = [["a","b","c"],["d","e","f"]] 
Enum.each rows, fn(row) ->                                            
    # Map the header to each row field                                          
    row = Enum.zip(header, row) |> Enum.into(%{}) 
    # Do some processing with the row 
    IO.inspect row                                    
end 

は私のためにこれを行いますエリキシル/ Erlangであっ機能ですまたは上記の組み合わせでありますzip /それを行う最善の方法に?

+2

解決策は良いです。ほとんどの言語では、これはかなり一般的なアプローチです。 http://rosettacode.org/wiki/Hash_from_two_arrays#Elixir – Gazler

答えて

12

私が使用していた方法は、キーのリストを値リストにマッピングするのに最適な方法です。

4

私は同様の質問をしていましたが、私はelixir-lang slack groupに質問し、あなたのアプローチとまったく同じ答えを得ました。

あなたが使ったものは良い解決策です。今はそれに固執する必要があります。

関連する問題