描述:
获取序列成员位置序号。
语法:
A.pos(x,k)
备注:
定位成员x在序列A中的位置,x可能在A中重复出现。返回值由选项决定,默认返回第一个出现的位置,找不到则返回null。有参数k时从第k个成员开始寻找。
参数:
A |
序列对象或返回序列对象的表达式。 |
x |
序列成员。 |
k |
从第k个成员开始寻找。 |
选项:
@b |
表示默认A为有序序列,使用二分法查找,递增或者递减均可。 |
@a |
返回满足条件的所有结果,因此返回结果是一个n数列。 |
@z |
从最后一个成员往前查找,默认从第一个成员往后查找。 |
@s |
A中成员有序,在用二分法查找时,当x为A成员时返回其位置;当x非A成员时,返回x按顺序可插入位置序号的相反数。 |
@p |
x是序列时当作单值处理,此时A是序列的序列。 |
@n |
找不到序列成员时返回A的长度加1,与@a互斥。 |
返回值:
序号/由序号组成的序列
示例:
|
A |
|
1 |
=[1,2,8,4,5,6,7,8] |
|
2 |
=A1.pos(8) |
3 |
3 |
=A1.pos@a(8) |
[3,8] |
4 |
=A1.pos@z(8) |
8 |
5 |
=A1.pos@az(8) |
[8,3] |
6 |
=A1.pos@z(9) |
null |
7 |
=[1,2,3,4,5,6,7,8].pos@b(5) |
5 |
8 |
=[1,2,4,5,6,7,8].pos@s(3) |
-3 |
9 |
=[[6,2,1,4,6,3,7,8],[1,4,6]].pos@p([1,4,6]) |
2 |
10 |
=[6,2,1,4,6,3,7,8].pos@n(5) |
9 |
11 |
=[6,2,1,4,6,3,7,8].pos(6,3) |
5 |
注意:
如果A不是有序序列,不能使用@b、@s这个选项,会导致返回的结果不正确,例如:[7,6,1,2].pos@b(3)返回空。
相关概念: