![](/img/trans.png)
[英]Equivalent of IO.inspect function that just returns string instead of printing given list, map or keyword list?
[英]List of String to Map
嗨,我想转换我从 .txt 文件中拆分出来的这组列表
["a: 1", "b: 2", "c: 3"]
至
%{"a" => "1", "b" => "2", "c" => "3"}
非常感谢你。
for item <- ["a: 1", "b: 2", "c: 3"], into: %{} do
[k, v] = String.split(item, ": ")
{k, v}
end
# %{"a" => "1"}, %{"b" => "2"}, %{"c" => "3"}
只是出于好奇:
list = ["a: 1", "b: 2", "c: 3"]
<<?%, ?{, Enum.join(list, ",") :: binary, ?}>>
|> Code.eval_string()
|> elem(0)
#⇒ %{a: 1, b: 2, c: 3}
请注意,当输入对于同一个键有多个值时,转换为 map 注定要失败:
list = ["a: 1", "a: 2", "a: 3"]
<<?%, ?{, Enum.join(list, ",") :: binary, ?}>>
|> Code.eval_string()
|> elem(0)
#⇒ %{a: 3}
这就是为什么最好将输入转换为Keyword
。
一般来说,应该首先修改产生这种奇怪输入的代码以返回Keyword
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.