如何将列表合并到 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
:
Zips corresponding elements from a finite collection of enumerables into one list of tuples.
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
:
Specs
zip([list()]) :: [tuple()]
Zips corresponding elements from each list in list_of_lists
.
The zipping finishes as soon as any list terminates.
示例:
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}]
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
:
Zips corresponding elements from a finite collection of enumerables into one list of tuples.
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
:
Specs
zip([list()]) :: [tuple()]
Zips corresponding elements from each list in
list_of_lists
.The zipping finishes as soon as any list terminates.
示例:
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}]