F# list 查找项目索引
Posted
技术标签:
【中文标题】F# list 查找项目索引【英文标题】:F# list find item index 【发布时间】:2017-01-23 05:06:26 【问题描述】:所以我有 2 个列表。 1 是一个布尔值列表,另一个是数据列表。 有没有办法为布尔列表中的每个错误值获取索引,然后我可以使用这些索引在我的数据列表中查找值?
【问题讨论】:
【参考方案1】:如果您的列表长度相同,您可以压缩它们(创建一个包含 (switch * value) 对的新列表,然后过滤该新列表,仅抓取第一个元素中为 false 的那些对。
List.zip booleans values
|> List.filter (fst >> not)
// grab only values
|> List.map snd
【讨论】:
【参考方案2】:List.choose
函数一次性执行映射和过滤,因此避免创建由 Bartek 的回答创建的中间列表之一:
List.zip booleans values
|> List.choose (function (false, v) -> Some v | _ -> None)
如果只有List.choose2
,那么我们也不需要压缩!
【讨论】:
这个实际上对我来说效果更好,因为我可以将 false 更改为 true,这是我意识到我需要为我当前的项目做的事情。以上是关于F# list 查找项目索引的主要内容,如果未能解决你的问题,请参考以下文章