将两个大小相同的列表转换为elixir中的键值对
我试图找出将两个相同大小的列表组合成键值对映射的最佳方法 一段时间以来,我一直在使用相同的函数来处理CSV和原始SQL查询的这种情况,这些查询返回某种类型的头列表和行列表 这是我一直在使用的函数将两个大小相同的列表转换为elixir中的键值对,elixir,keyvaluepair,Elixir,Keyvaluepair,我试图找出将两个相同大小的列表组合成键值对映射的最佳方法 一段时间以来,我一直在使用相同的函数来处理CSV和原始SQL查询的这种情况,这些查询返回某种类型的头列表和行列表 这是我一直在使用的函数 Enum.zip(list1, list2) |> Enum.into(%{}) 例如: # For CSVS header = ["column1","column2","column3"] rows = [["a","b","c"],["d","e","f"]] Enum.each rows
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
elixir/erlang中是否有一个函数可以为我实现这一点,或者上面的zip/组合是实现这一点的最佳方式?我有一个类似的问题,我问了这个问题,得到了一个与您的方法完全相同的答案
您使用的是一个很好的解决方案。现在您必须坚持使用它。在与一些人讨论后,我使用的方法是完成键列表到值列表映射的最佳方法
Enum.zip(list1, list2) |> Enum.into(%{})
你的解决方案很好。在大多数语言中,这是一种相当常见的方法。