2017-01-25 28 views

回答

2

当你想有一个整数作为一个按键,它更好地使用地图。 此代码将返回给您地图,如%{1 => "A", 2 => "B"}

a = [[1, "A"], [2, "B"]] 
for [k, v] <- a, do: {k, v}, into: %{} 
-2

这是一种转换字符串的方法。

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

由于https://github.com/JEG2

+0

这是不可能有'[1: “A”,2: “B”]',因为':1'没有按”在Elixir中作为一个原子工作。在这个例子中,您可以使用'a [:“1”]'从'a'关键字列表中访问您的元素。 – PatNowak

+0

'String.to_atom(to_string(key))'可能会改为':“#{key}”'来阐明意图。 – mudasobwa

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] 
相关问题