gpt4 book ai didi

F# 将序列拆分为每个第 n 个元素的子列表

转载 作者:行者123 更新时间:2023-12-03 23:46:50 25 4
gpt4 key购买 nike

假设我有 100 个元素的序列。每 10 个元素我想要一个前 10 个元素的新列表。在这种情况下,我最终会得到一个包含 10 个子列表的列表。

Seq.take(10) 看起来很有希望,我如何重复调用它以返回列表列表?

最佳答案

这还不错:

let splitEach n s =
seq {
let r = ResizeArray<_>()
for x in s do
r.Add(x)
if r.Count = n then
yield r.ToArray()
r.Clear()
if r.Count <> 0 then
yield r.ToArray()
}

let s = splitEach 5 [1..17]
for a in s do
printfn "%A" a
(*
[|1; 2; 3; 4; 5|]
[|6; 7; 8; 9; 10|]
[|11; 12; 13; 14; 15|]
[|16; 17|]
*)

关于F# 将序列拆分为每个第 n 个元素的子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3999584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com