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

Dyalog APL:过滤命名空间数组后如何获取无嵌套结果?

解决APL命名空间数组过滤后的嵌套问题

你的问题出在误用了逐元素操作符¨,tmpSymbolsT是包含多个命名空间的数组,不需要逐个元素处理,直接对整个数组应用过滤逻辑即可。

修正后的代码

tmpSymbolsT←(data←⎕JSON(HttpCommand.Get'api.binance.com/api/v3/exchangeInfo').Data).symbols
tmpSymbols←{(⍵.status≡'TRADING')⌿⍵} tmpSymbolsT

或者更简洁的写法(省去命名函数):

tmpSymbolsT←(data←⎕JSON(HttpCommand.Get'api.binance.com/api/v3/exchangeInfo').Data).symbols
tmpSymbols←(⊢.status≡'TRADING')⌿ tmpSymbolsT

原因说明

原来的代码里⍨¨会把过滤函数单独作用于tmpSymbolsT的每一个元素,每个元素本身是单个命名空间,过滤后会生成只包含该元素的单元素数组,最终结果就变成了数组套数组的嵌套结构。去掉¨后,函数直接处理整个tmpSymbolsT数组:

  • ⍵.status≡'TRADING'会生成与原数组长度一致的布尔数组,标记每个元素是否符合条件
  • ⌿用这个布尔数组过滤原数组,得到的结果结构就和tmpSymbolsT完全一致,不会有嵌套包装。

内容的提问来源于stack exchange,提问作者конструктор

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 19:06:11