q語言中_的3種用法

lt發表於2016-07-03

第1種,刪除子列表,語法為 整數 _ 列表名,正數表示從列表開頭刪除,負數從列表尾部刪除。

q)t:1+til 10
q)t
1 2 3 4 5 6 7 8 9 10
q)1 _ t
2 3 4 5 6 7 8 9 10
q)4 _ t
5 6 7 8 9 10
q)-3 _ t
1 2 3 4 5 6 7

第2種,劃分子列表,語法為 列表1_ 列表2,列表1表示要從列表2刪除和劃分的位置,返回與列表1元素個數相同個子列表。如果列表1的第1個元素為0,則不刪除,只劃分。
注意:列表1的元素必須遞增,否則出錯
注意:列表1的元素必須不超過列表2的下標索引號(從1開始算),否則出錯

q)t:10+10*til 10
q)t
10 20 30 40 50 60 70 80 90 100
q)1 3 _t
20 30
40 50 60 70 80 90 100
q)0 3 _ t
10 20 30
40 50 60 70 80 90 100
q)3 6 _ t
40 50 60
70 80 90 100
q)2 4 7 _t
30 40
50 60 70
80 90 100
q)0 2 4 7 _t
10 20
30 40
50 60 70
80 90 100

q)2 4 3 _t
'domain
q)2 3 4_t
,30
,40
50 60 70 80 90 100
q)2 3 12 _ t
'domain
q)2 3 10 _ t
,30
40 50 60 70 80 90 100
`long$()

第3種,刪除字典中的條目,語法為 列表1_ 字典,列表1表示要從字典中刪除的關鍵字,如果字典中不存在列表中的關鍵字,不會報錯。

q)t:10+10*til 4
q)t
10 20 30 40
q)d:t!()
q)d
10|
20|
30|
40|
q)20 40 _ d
10|
30|
q)20 50 _ d
10|
30|
40|

相關文章