Elixir 含长生不老药的步骤列表
有人能提供一个建议,如何迭代一个列表,但每次使用一批x吗 例如: 如果功能存在:Elixir 含长生不老药的步骤列表,elixir,Elixir,有人能提供一个建议,如何迭代一个列表,但每次使用一批x吗 例如: 如果功能存在: ["1","2","3","4","5","6","7","8","9","10"].step(5)|> IO.puts 将在两次迭代中产生: 12345 678910 我相信Stream.iterate/2是一个解决方案,但我在给定数组的情况下这样做的尝试证明是无利可图的。(or)会将列表分解为x元素的子列表: iex> [1,2,3,4,5,6,7,8,9,10] |> Enum.chunk
["1","2","3","4","5","6","7","8","9","10"].step(5)|> IO.puts
将在两次迭代中产生:
12345
678910
我相信Stream.iterate/2是一个解决方案,但我在给定数组的情况下这样做的尝试证明是无利可图的。(or)会将列表分解为x元素的子列表:
iex> [1,2,3,4,5,6,7,8,9,10] |> Enum.chunk(5)
[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
然后可以对每个列表执行操作,例如:
iex> ["1","2","3","4","5","6","7","8","9","10"]
|> Enum.chunk(5)
|> Enum.each(fn x -> IO.puts x end)
12345
678910
这并不是一个完美的解决方案。如果列表大小不是块大小的倍数,那么它将忽略剩余的元素数。例如,如果数组是[“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“11”、“12”],那么结果现在将包括11和12。@KshitijMittal在这种情况下,您可以使用
list |>Enum.chunk(5,5,[])
@Gazler谢谢。这些文件,至少对我来说,很难理解。示例非常少,措辞非常简短。