2017-01-25 29 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] 
相關問題