RazgrizHsu

RazgrizHsu

How to add key/value element to List with variable

we can create a list like this

list = [ a: 1, b: 2, c: 3 ]

but i can’t found api to add element with key to list?

list = []

key = :a
value = 1
#wrong ( * (SyntaxError) iex:4: syntax error before: '=>' )
list = list ++ [ key => value ]

anyone know how to do that?
thank you :slight_smile:

Marked As Solved

LostKobrakai

LostKobrakai

Keyword lists are syntax sugar over a list of tuples, which are strictly {atom(), term()}. So you can do list ++ [{key, value}].

Also Liked

lpil

lpil

Creator of Gleam

As an extra tip, list ++ [{key, value}] is quite slow as you need to traverse the entire list to add [{key, value}] to the end.

As a rule of thumb you should add elements to the front of the list, which happens in constant time [{key, value} | list]

NobbZ

NobbZ

Besides from what have been said already, you also can use Keyword.put/3.

hauleth

hauleth

Which is slower than [{key, value} | list] as this need to traverse all list and remove duplicates.

Last Post!

RazgrizHsu

RazgrizHsu

thank you very much guys, it’s great answer and performance advise

Where Next?

Popular in Questions Top

ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New

Other popular topics Top

ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New

We're in Beta

About us Mission Statement