如何在Elixir中将[[1, "A"], [2, "B"]]
转换为[1: "A", 2: "B"]
?
尝试过看模式匹配,理解,无法弄清楚。
谢谢!
答案 0 :(得分:2)
如果要将整数作为键,最好使用地图。
此代码将返回您的地图,如%{1 => "A", 2 => "B"}
。
a = [[1, "A"], [2, "B"]]
for [k, v] <- a, do: {k, v}, into: %{}
答案 1 :(得分:1)
[[1, "A"], [2, "B"]]
|> Enum.map(&List.to_tuple/1)
|> Enum.into(%{})
#⇒ %{1 => "A", 2 => "B"}
请注意,[1: "A", 2: "B"]
中Elixir
不是合法的结构。
[[1, "A"], [2, "B"]]
|> Enum.map(&List.to_tuple/1)
|> Enum.into(Keyword.new)
#⇒ [{1, "A"}, {2, "B"}]
尽管它是如何输出的,但它是有效的Keyword
列表:
Keyword.values [{1, "A"}, {2, "B"}]
#⇒ ["A", "B"]
Keyword.keys [{1, "A"}, {2, "B"}]
#⇒ [1, 2]
答案 2 :(得分:-2)