You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在APL中基于子列表首元素过滤嵌套列表?

解决APL数组过滤问题

你的需求是过滤数组x,只保留第一个元素为1的子数组。

正确实现代码

x ← ((1 'data1') (0 'data2') (0 'data3') (1 'data4') )
      (⊃¨x)/x  ⍝ 提取每个子数组的第一个元素作为掩码,过滤原数组
┌─────────┬─────────┐
│┌─┬─────┐│┌─┬─────┐│
││1│data1│││1│data4││
│└─┴─────┘│└─┴─────┘│
└─────────┴─────────┘

错误原因分析

你之前的代码((⊃y)[1])/y←x只取了第一个子数组的第一个元素(即标量1),APL中用标量作为掩码时,会将整个数组重复对应次数(这里标量1就是保留整个数组),所以没有实现过滤效果。

而⊃¨x是对x中的每个子数组应用⊃(取首元素),得到一个长度和x一致的数组1 0 0 1,用这个数组作为掩码时,就会保留对应位置为1的子数组。

内容的提问来源于stack exchange,提问作者Akanoa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 20:51:09