Elixir 如何转换以下地图/列表?
如何将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
[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]