A.pos()

阅读(488) 标签: 获取, 序列成员, 位置序号,

描述:

获取序列成员位置序号

语法:

A.pos(x)

备注:

定位成员x在序列A中的位置,x可能在A中重复出现。返回值由选项决定,默认返回第一个出现的位置,找不到则返回null

参数:

A

序列对象或返回序列对象的表达式

x

序列成员

选项:

@b

表示默认为有序序列,使用二分法查找,递增或者递减均可

@a

返回满足条件的所有结果,因此返回结果是一个n数列

@z

从最后一个成员往前查找,默认从第一个成员往后查找

@s

A中成员有序,在用二分法查找时,当xA成员时返回其位置;当xA成员时,返回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

注意:

如果A不是有序序列,不能使用@b@s这个选项,会导致返回的结果不正确,例如:[7,6,1,2,3].pos@b(3)返回空

相关概念:

A.pos(x)

A.psort()