2017-01-25 3 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 'doesnの」エリクサーで原子として働く。この例では、 '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] 
関連する問題