我正在对列表中的 929 个字符串执行字符串搜索。
我正在循环 7 个不同的字符串。
我遇到的问题是如何将输出作为一个返回,而不是为搜索的每个不同字符串返回 7 次。
q){{ss[x;y]}[;x]each exec rd from rdeFunc}each exec v from dToCol
..
q)
q)count {{ss[x;y]}[;x]each exec rd from rdeFunc}each exec v from dToCol
7
q)
q)count each {{ss[x;y]}[;x]each exec rd from rdeFunc}each exec v from dToCol
929 929 929 929 929 929 929
q)
ss
返回匹配的起始索引列表
q){{ss[x;y]}[;x]each exec rd from ([] rd:("aa";"bb";"cc";"dd";"ee";"ff"))}each exec v from ([] v:("aa";"cc";"ff"))
,0 `long$() `long$() `long$() `long$() `long$()
`long$() `long$() ,0 `long$() `long$() `long$()
`long$() `long$() `long$() `long$() `long$() ,0
如果您只关心是否有匹配项而不关心它在哪里,那么您可以使用
count
{{count ss[x;y]}[;x]each exec rd from ([] rd:("aa";"bb";"cc";"dd";"ee";"ff"))}each exec v from ([] v:("aa";"cc";"ff"))
1 0 0 0 0 0
0 0 1 0 0 0
0 0 0 0 0 1
那么如果你只关心某些东西是否匹配而不是具体哪个你可以使用
any
:
any {{count ss[x;y]}[;x]each exec rd from ([] rd:("aa";"bb";"cc";"dd";"ee";"ff"))}each exec v from ([] v:("aa";"cc";"ff"))
101001b
或者
any flip
如果你想以相反的方向遮盖:
any flip {{count ss[x;y]}[;x]each exec rd from ([] rd:("aa";"bb";"cc";"dd";"ee";"ff"))}each exec v from ([] v:("aa";"cc";"ff"))
111b