2014-09-12 11 views
46

Jaki byłby elegancki sposób przekształcania listy dwóch krotek przedmiotów, takich jak [{1,2},{3,4}], w mapę %{1=>2, 3=>4}?Jak utworzyć mapę z listy dwóch krotek przedmiotów w eliksiru

Lista słów kluczowych byłaby banalna, ale co, jeśli mamy arbitralne klucze?

+0

Przyjechałem tutaj z Google, który chce przekonwertować z listy słów kluczowych na mapę. Czy mógłbyś rozwinąć tę banalną operację? :) – Jay

Odpowiedz

91

Najprostszym sposobem na to jest:

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

Uwielbiam ten język –

+0

To nie działa dla żadnej listy, działa tylko dla listy słów kluczowych. – tejasbubane

+0

Działa dla dowolnej listy krotek z dwoma elementami, jak wspomniano w oryginalnym wpisie. Listy słów kluczowych to szczególnie dwupunktowe krotki, w których pierwszym elementem jest atom, i są węższą kategorią niż listy krotek z dwoma przedmiotami. – bitwalker

4

Mam tylko go:

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

Prostszy sposób: 'Enum.into (list,% {})'. – bitwalker

+0

@bitwalker: jeśli napiszesz to jako odpowiedź, zaakceptuję to. – siddhadev

+0

Co ciekawe, * myślę, * że ta wersja kompiluje się do tego samego, co zaakceptowana odpowiedź. Nie takie ładne. – whitfin

11

Map moduł wspiera również takie listy jako parametr do new funkcję:

Map.new list 
Powiązane problemy