PQL 快速入门
PQL基础
数据流转
输出文件
PQL 中的语句
分支和循环
更优雅的数据操作
PQL 高级特性
系统函数
自定义函数
扩展操作
其他语言相关
附录
PQL 中的数组是变长的,可以增减元素,按索引访问数据的项。因为哈希列表操作和数组完全相同,所以本文的所有操作也适用于哈希列表。
设有数组
ADD value
为数组添加项,支持添加多个值。新增加的值在数组的后面。
AVG
计算数组中数值的平均值,返回整数或小数。CSV
求数字数组的样本变异系数。CV
求数字数组的变异系数。DELIMIT 'delimiter'
将数组的每一项使用分隔符delimiter
分开并将数组转成一个数据行。["name=Tom", "age=18", "score=89"] DELIMIT '='
结果是{ "name": "Tom", "age": "18", "score": "89" }
。DESC
对数组元素进行倒序排序,只支持数字和字符串元素的排序。[3, 1, 2] DESC
的结果是[3, 2, 1]
。FIRST
获取数组的第一个元素。$array FIRST
结果是1
。也可以用$array.first
,优先级高于FIRST
,详见集合类型的元素访问。GET index
根据索引获取数组的某一个元素,索引从1
开始。$array GET 2
结果是2
。另一种获取数组中元素的方法是使用方括号[]
,例如$array[2]
,注意索引从0
开始,详见集合类型的元素访问。HAS item
判断数组中是否包含元素item
。$array HAS 6
结果是false
。JOIN 'delimiter'
将数组的所有元素合并成一个字符串,元素之间添加分隔符delimiter
。$array JOIN '-'
结果是'1-2-3-4-5'
。LAST
获取数组的最后一个元素。$array LAST
结果是5
。也可以用$array.last
,优先级高于LAST
,详见集合类型的元素访问。LENGTH
获取数组的长度。$array LENGTH
结果是5
。MAP
将数组元素映射成另外一个元素,可对元素进行快速加工。这个操作接受一个 Javascript 表达式字符串,即使用指定的 Javascript 对数据项进行加工。使用#item
表示每一项的值。
RANDOM
从数据中随机取一个元素。如1 TO 100 RANDOM
返回一个1
到100
之间的一个随机数。RANDOM n
从一个集合中随机取n
个元素,生成一个新的数组,n
大于1
且n
可以大于原数组长度。新数组的元素顺序会被打乱。REMOVE index
根据索引删除数组的某一个元素,索引从1
开始,可以同时删除多个值。$array REMOVE 2, 3
结果是[1, 4, 5]
。REVERSE
反转整个数组。$array REVERSE
结果是[5, 4, 3, 2, 1]
。SORT
或ASC
对数组元素进行正序排序,只支持数字和字符串元素的排序。[3, 1, 2] SORT
的结果是[1, 2, 3]
。STDEV
求数字数组的样本标准差。STDEVP
求数字数组的标准差。TO HASHSET
将数组转成哈希列表,会对列表中的元素进行排重,哈希列表中元素的顺序可能与添加顺序不同。VAR
求数字数组的样本方差。VARP
求数字数组的方差。m TO n
生成一个从m
到n
的整数数组,包括n
,一般用于 FOR 循环中。1 TO 4
结果是[1, 2, 3, 4]
m UNITIL n
生成一个从m
到n
的整数数组,不包括n
,一般用于循环中。1 TO 4
结果是[1, 2, 3]
。更多示例可以参阅 FOR 语句。value IN (v1, v2, v3)
判断一个值是否在数组中。value NOT IN (v1, v2, v3)
判断一个值是否不在数组中。以下是IN
和NOT IN
的示例:
参考链接