【问题标题】:How to merge lists into a list of tuples in Elixir?如何将列表合并到 Elixir 中的元组列表中?
【发布时间】:2020-12-22 03:24:22
【问题描述】:

Elixir 将两个列表合并为一个元组列表的方法是什么?

list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]

# List of tuples from 'list1' and 'list2':
    
result = [{1,5}, {2,6}, {3,7}, {4,8}]

result 的每个成员都是一个元组,其第一个成员来自list1,第二个成员来自list2

【问题讨论】:

    标签: list tuples elixir


    【解决方案1】:

    您可以使用Enum.zip/2

    将有限的可枚举集合中的相应元素压缩到一个元组列表中。

    Enum.zip([[1, 2, 3], [:a, :b, :c], ["foo", "bar", "baz"]])
    # [{1, :a, "foo"}, {2, :b, "bar"}, {3, :c, "baz"}]
    
    Enum.zip([[1, 2, 3, 4, 5], [:a, :b, :c]])
    # [{1, :a}, {2, :b}, {3, :c}]
    

    【讨论】:

      【解决方案2】:

      你可以考虑使用List.zip/1:

      zip(list_of_lists)

           规格

           zip([list()]) :: [tuple()]

      压缩list_of_lists中每个列表的对应元素。

      只要任何列表终止,压缩就会结束。

      示例:

          iex(1)> list1 = [1, 2, 3, 4]
          [1, 2, 3, 4]
          iex(2)> list2 = [5, 6, 7, 8]
          [5, 6, 7, 8]
          iex(3)> result = List.zip([list1, list2])
          [{1, 5}, {2, 6}, {3, 7}, {4, 8}]
      

      【讨论】:

        猜你喜欢
        • 2011-01-25
        • 1970-01-01
        • 2021-11-11
        • 1970-01-01
        • 2021-09-12
        • 1970-01-01
        • 2022-11-21
        • 2016-10-08
        相关资源
        最近更新 更多