Elixir 如何一次迭代两个列表以生成一个新列表?

合法堆栈

我想一次迭代两个列表,但不知道如何。for 循环允许您将多个列表用作嵌套的 for 循环,我对 不太熟悉Enum,但也许那里有解决方案。

Python 已经zip(list_1,list_2)enumerate(list_1)完成了这个

在 Tcl 中对我来说更容易:

% foreach var1 [list 1 3] var2 [list 2 4] {
    puts "$var1 $var2"
  }
1 2
3 4

但我无法弄清楚如何在 Elixir 中做到这一点。

我想这样做的原因是因为我有一个这样的地图列表

[%{"a" => "1539", "b" => "300"},
 %{"a" => "4095", "b" => "0"},
 %{"a" => "5371", "b" => "0"},
 %{"a" => "7524", "b" => "0"},
 %{"a" => "8267", "b" => "27"}]

我有一个相同大小的项目列表:

["a","b","c","d","e"]

如果地图中的元素之一处于特定条件(不是 0),我想将它们一起循环运行以替换地图中的项目:

[%{"a" => "a", "b" => "300"},   # notice the change in element "a"
 %{"a" => "4095", "b" => "0"},
 %{"a" => "5371", "b" => "0"},
 %{"a" => "7524", "b" => "0"},
 %{"a" => "e", "b" => "27"}]    # notice the change in element "a"

反正。有人可以帮助我理解 enumerable 或如何在 elixir 中迭代两个列表吗?

谢哈里亚尔

你可以在 Elixir 中使用Enum.zip/2Enum.map/2来完成同样的事情:

list_of_maps
|> Enum.zip(list_of_items)
|> Enum.map(fn {map, item} -> 
   if (map["b"] == "0"), do: map, else: Map.put(map, "a", item)
end)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 Elixir 中一次处理每两个相邻的列表项?

来自分类Dev

比较两个列表中Elixir的相似性

来自分类Dev

Elixir:将列表列表转换为一个列表

来自分类Dev

如何一次在两个列表中应用一个函数?

来自分类Dev

Elixir:混合别名,在一个别名中包含两个“运行”任务

来自分类Dev

遍历两个列表时,如何在一次迭代后停止内部循环?

来自分类Dev

如何在Elixir中根据两个元组的列表创建地图

来自分类Dev

如何一次遍历两个列表列表并将一个列表中的值替换为另一个列表?

来自分类Dev

Elixir与Mix如何做一个守护进程?

来自分类Dev

循环遍历两个列表,一次一个元素

来自分类Dev

Elixir:列表输出中的 ^A

来自分类Dev

在 Elixir ExUnit 中,我如何保证 Supervisor 将创建一个新的 GeNserver?

来自分类Dev

将两个相同大小的列表转换为Elixir中的键值对

来自分类Dev

如何一次打印一个行值,如何在JSTL中迭代列表

来自分类Dev

一次遍历两个列表

来自分类Dev

一次访问两个列表元素,并枚举

来自分类Dev

可以一次扩展两个列表吗?

来自分类Dev

Elixir:如何获取列表中的最后n个项目?

来自分类Dev

Elixir 列表理解以创建新的结构列表

来自分类Dev

如何过滤两个列表并创建一个新列表

来自分类Dev

如何连接两个列表元素 - 明智并制作一个新列表?

来自分类Dev

Elixir:一个接一个地运行一个函数

来自分类Dev

如何只用一个 for 循环迭代两个列表?

来自分类Dev

删除 Elixir 中列表元素的所有条目(不仅仅是第一个)

来自分类Dev

Elixir理解返回一个星形字符“ *”

来自分类Dev

Elixir宏中的任意参数-包裹一个主体

来自分类Dev

Elixir 应用程序运行一个 PHP 脚本

来自分类Dev

使用 LINQ/扩展方法从一个列表一次添加两个不同的值

来自分类Dev

一次将列表元素追加到列表两个元素的列表

Related 相关文章

  1. 1

    如何在 Elixir 中一次处理每两个相邻的列表项?

  2. 2

    比较两个列表中Elixir的相似性

  3. 3

    Elixir:将列表列表转换为一个列表

  4. 4

    如何一次在两个列表中应用一个函数?

  5. 5

    Elixir:混合别名,在一个别名中包含两个“运行”任务

  6. 6

    遍历两个列表时,如何在一次迭代后停止内部循环?

  7. 7

    如何在Elixir中根据两个元组的列表创建地图

  8. 8

    如何一次遍历两个列表列表并将一个列表中的值替换为另一个列表?

  9. 9

    Elixir与Mix如何做一个守护进程?

  10. 10

    循环遍历两个列表,一次一个元素

  11. 11

    Elixir:列表输出中的 ^A

  12. 12

    在 Elixir ExUnit 中,我如何保证 Supervisor 将创建一个新的 GeNserver?

  13. 13

    将两个相同大小的列表转换为Elixir中的键值对

  14. 14

    如何一次打印一个行值,如何在JSTL中迭代列表

  15. 15

    一次遍历两个列表

  16. 16

    一次访问两个列表元素,并枚举

  17. 17

    可以一次扩展两个列表吗?

  18. 18

    Elixir:如何获取列表中的最后n个项目?

  19. 19

    Elixir 列表理解以创建新的结构列表

  20. 20

    如何过滤两个列表并创建一个新列表

  21. 21

    如何连接两个列表元素 - 明智并制作一个新列表?

  22. 22

    Elixir:一个接一个地运行一个函数

  23. 23

    如何只用一个 for 循环迭代两个列表?

  24. 24

    删除 Elixir 中列表元素的所有条目(不仅仅是第一个)

  25. 25

    Elixir理解返回一个星形字符“ *”

  26. 26

    Elixir宏中的任意参数-包裹一个主体

  27. 27

    Elixir 应用程序运行一个 PHP 脚本

  28. 28

    使用 LINQ/扩展方法从一个列表一次添加两个不同的值

  29. 29

    一次将列表元素追加到列表两个元素的列表

热门标签

归档