簡體   English   中英

如何將列表合並到 Elixir 中的元組列表中?

[英]How to merge lists into a list of tuples in Elixir?

將兩個列表合並為一個元組列表的 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

您可以使用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}]

您可以考慮使用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}]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM