【发布时间】:2017-01-23 05:06:26
【问题描述】:
所以我有 2 个列表。 1 是一个布尔值列表,另一个是数据列表。 有没有办法为布尔列表中的每个错误值获取索引,然后我可以使用这些索引在我的数据列表中查找值?
【问题讨论】:
所以我有 2 个列表。 1 是一个布尔值列表,另一个是数据列表。 有没有办法为布尔列表中的每个错误值获取索引,然后我可以使用这些索引在我的数据列表中查找值?
【问题讨论】:
如果您的列表长度相同,您可以压缩它们(创建一个包含 (switch * value) 对的新列表,然后过滤该新列表,仅抓取第一个元素中为 false 的那些对。
List.zip booleans values
|> List.filter (fst >> not)
// grab only values
|> List.map snd
【讨论】:
List.choose 函数一次性执行映射和过滤,因此避免创建由 Bartek 的回答创建的中间列表之一:
List.zip booleans values
|> List.choose (function (false, v) -> Some v | _ -> None)
如果只有List.choose2,那么我们也不需要压缩!
【讨论】: