在相邻区间内查找和筛选

本文通过实例解析如何使用SPL脚本在数字序列中定位特定条件的元素,如找到10之后的第一个奇数或统计1之后的2个数。通过A1、A2和A3的步骤展示如何运用逻辑操作和函数来实现这些任务。

相邻区间是指某个成员周围的其它成员构成的区间。

举例

例 1

有一个数字序列,想要找出数字10以后出现的第一个奇数。

编写SPL脚本:

A
1[10,2,4,3,10,3,8,7,10,8,3,10,6,4,7]
2=A1.(if(~==10,~[1:].select@1(~%2==1)))
3=A2.select(~)

A1   数字序列

A2   循环A1的每个数,计算:如果当前数是10,则从它后面的数中选出第1个奇数。其中~[1:]表示当前数的下一个到最后一个组成的序列,选项@1表示选出满足条件的第1个。当前数不是10则返回null

A3   选出A2中不是null的数字

例 2

有一个数字序列由1和2组成,想要统计第1个数字1以后有多少个2。

编写SPL脚本:

A
1[2,2,1,1,2,1,1,2,2]
2=A1.to(A1.pselect(~==1),).count(~==2)

A1   数字序列

A2   统计第1个数字1以后数字2的个数,A1.pselect(~==1)是选出第1个数字1的序号,to函数是选出从这个序号开始直到A1序列最后的数字。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值