2014-09-12 3 views
46

Что было бы элегантным способом преобразования списка из двух наборов элементов, например [{1,2},{3,4}], на карту %{1=>2, 3=>4}?Как создать карту из списка двух наборов элементов в Elixir

Список ключевых слов был бы тривиальным, но что, если у нас есть произвольные ключи?

+0

Пришел сюда из Google, чтобы конвертировать из списка ключевых слов в карту. Не могли бы вы рассказать об этой тривиальной операции? :) – Jay

ответ

91

Самый простой способ сделать это:

Enum.into(list, %{}) 
+10

Gotta love this language –

+0

Это не работает ни для какого списка, работает только для списка ключевых слов. – tejasbubane

+0

Он работает для любого списка двухпозиционных кортежей, как указано в исходном сообщении. Списки ключевых слов - это, в частности, двухпозиционные кортежи, где первый элемент является атомом, и более узкая категория, чем списки двухпозиционных кортежей. – bitwalker

4

Я только что получил его:

list = [{1,2},{3,4}] 
themap = for e <- list, into: %{}, do: e 
+8

Простейший способ: 'Enum.into (list,% {})'. – bitwalker

+0

@bitwalker: если вы разместите его как ответ, я его приму. – siddhadev

+0

Интересно, что я * думаю *, что эта версия просто компилируется на ту же тему, что и принятый ответ. Не так красиво. – whitfin

11

Map Модуль также поддерживает такие списки в качестве параметра new функции:

Map.new list 

 Смежные вопросы

  • Нет связанных вопросов^_^