【问题标题】:How to create a map from a list of two item tuples in Elixir如何从 Elixir 中的两个项目元组列表创建地图
【发布时间】:2014-11-06 19:16:51
【问题描述】:

将像[{1,2},{3,4}] 这样的两个项目元组的列表转换为映射%{1=>2, 3=>4} 的优雅方法是什么?

关键字列表很简单,但如果我们有任意关键字呢?

【问题讨论】:

  • 从谷歌来到这里,希望将关键字列表转换为地图。你能详细说明一下这个微不足道的操作吗? :)

标签: elixir


【解决方案1】:

最简单的方法是:

Enum.into(list, %{})

【讨论】:

  • 这不适用于任何列表,仅适用于关键字列表。
  • 它适用于任何两项元组列表,如原始帖子中所述。关键字列表特别是两项元组,其中第一项是原子,并且是比两项元组列表更窄的类别。
  • 这个答案写在Map.new/1 之前是created,但Map.new 是最简单的方法(参见丹尼斯的答案)。
【解决方案2】:

Map 模块还支持将列表作为new 函数的参数:

iex> Map.new([{1, 2}, {3, 4}])
%{1 => 2, 3 => 4}

【讨论】:

    【解决方案3】:

    我刚刚得到它:

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

    【讨论】:

    • 更简单的方法:Enum.into(list, %{}).
    • @bitwalker:如果您将其发布为答案,我会接受。
    • 有趣的是,我认为这个版本只是编译成与接受的答案相同的东西。不过没那么漂亮。
    猜你喜欢
    • 2021-01-18
    • 1970-01-01
    • 2022-12-08
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    相关资源
    最近更新 更多