Elixir 如何转换以下地图/列表?

Elixir 如何转换以下地图/列表?,elixir,Elixir,如何将Elixir中的[1,“A”],[2,“B”]转换为[1:“A”,2:“B”] 曾经试过看模式匹配,理解,都没能搞清楚 谢谢 下面是一种转换字符串的方法 [[1, "A"], [2, "B"]] |> Enum.map(fn [key, value] -> {String.to_atom(to_string(key)), value} end) 多亏了当您想要将整数作为键时,最好使用映射。 此代码将像%{1=>“A”,2=>“B”}一样返回映射 a=[[1,“a

如何将Elixir中的
[1,“A”],[2,“B”]
转换为
[1:“A”,2:“B”]

曾经试过看模式匹配,理解,都没能搞清楚


谢谢

下面是一种转换字符串的方法

[[1, "A"], [2, "B"]] 
  |> Enum.map(fn [key, value] ->
    {String.to_atom(to_string(key)), value} end)

多亏了

当您想要将整数作为键时,最好使用映射。 此代码将像
%{1=>“A”,2=>“B”}
一样返回映射

a=[[1,“a”],[2,“B”]]
对于[k,v]
请注意,
[1:“A”,2:“B”]
Elixir
中不是合法的结构

[[1, "A"], [2, "B"]]
|> Enum.map(&List.to_tuple/1)
|> Enum.into(Keyword.new)
#⇒ [{1, "A"}, {2, "B"}]   
不管它是如何输出的,它都是有效的
关键字
列表:

Keyword.values [{1, "A"}, {2, "B"}]
#⇒ ["A", "B"]
Keyword.keys [{1, "A"}, {2, "B"}]
#⇒ [1, 2]

不可能有
[1:“A”,2:“B”]
,因为
:1
不能作为原子在长生不老药中起作用。在本例中,您可以使用
a[:“1”]
String从
a
关键字列表访问您的元素。to_atom(to_String(key))
可能会更改为
:“{key}”
,以澄清意图。
[[1, "A"], [2, "B"]]
|> Enum.map(&List.to_tuple/1)
|> Enum.into(Keyword.new)
#⇒ [{1, "A"}, {2, "B"}]   
Keyword.values [{1, "A"}, {2, "B"}]
#⇒ ["A", "B"]
Keyword.keys [{1, "A"}, {2, "B"}]
#⇒ [1, 2]