Elixir 使用列表从一个列表转换数据

Elixir tranform data from one List with lists

你能帮我解决这个问题吗

1 - 我的问题是如何使用列表转换来自一个列表的数据。

例如:

在此列表中,将 "Elixir" 转换为 --> :Elixir,将数字字符串转换为整数

[
    ["Language", "Elixir"],
    ["Language", "Python"],
    ["Language", "Rust"],
    ["Framework", "Phoenix", "1"]
]

2 - 我的第二个问题是哪个更方便,将其作为列表或地图来处理。

此致

可以通过多种方式转换嵌套列表;这里最合适的是在映射器的子句中使用模式匹配。

input = [
    ["Language", "Elixir"],
    ["Language", "Python"],
    ["Language", "Rust"],
    ["Framework", "Phoenix", "1"]
]

Enum.map(input, fn
  [kind, name] ->
    [kind, String.to_atom(name)]
  [kind, name, ver] ->
    [kind, String.to_atom(name), String.to_integer(ver)]
end)
#⇒ [
#   ["Language", Elixir],
#   ["Language", :Python],
#   ["Language", :Rust],
#   ["Framework", :Phoenix, 1]
# ]

使用地图会更方便,因为无论是否提供密钥,您都可以明智地处理更新。