我有一个string []列表,我希望将所有列表的字符串数组中的第5个元素分组..
我发现了两种不同的方法
let rec Publication x y (z:string [] list) =
if x < z.Length then
let muro = [z.[x].[y]]
let rest = Publication (x+1) y z
List.append muro rest
else []
其中z是字符串[]列表,y是我要列出的元素。 和
let Publication x (z:string [] list) = [for i in 0 .. (z.Length-1) -> z.[i].[x]]
在第一种情况下,处理大量数据时出现堆栈溢出错误,第二种情况需要很长时间。任何人都可以帮我找到第三种更有效的方法吗?谢谢!
答案 0 :(得分:1)
你的第二个版本表面上似乎是明智的,但我想知道问题不是z
的索引访问,因为列表是从每个z.[i]
调用的头部迭代的。我会尝试简单明了:
let publication idx (lst: string [] list) =
lst |> List.map (fun arr -> arr.[idx])
你有一个数组列表和一个索引,你可以浏览列表并通过每个数组的索引获取元素。