Kdb 如何在q中筛选或搜索嵌套列表

Kdb 如何在q中筛选或搜索嵌套列表,kdb,Kdb,假设我有一张清单 list:(`a`b;`ac`d;`e`af) 我想搜索所有的符号,比如a来给出 (`a;`ac;`af) 我该怎么做呢 如果我尝试使用 list where each list like "*c*" (没有每个都适用于平面列表)我得到一个类型错误 谢谢你你的方法就快到了-像一样可以很好地处理平面列表,但是需要被告知对左参数的每个元素进行操作: q)list like\:"*c*" 00b 10b 00b 然后,您可以使用where each,并将两者应用回初始列表的

假设我有一张清单

list:(`a`b;`ac`d;`e`af)
我想搜索所有的符号,比如
a
来给出

(`a;`ac;`af)
我该怎么做呢

如果我尝试使用

list where each list like "*c*" 
(没有每个都适用于平面列表)我得到一个
类型
错误


谢谢你

你的方法就快到了-
一样可以很好地处理平面列表,但是需要被告知对左参数的每个元素进行操作:

q)list like\:"*c*"
00b
10b
00b
然后,您可以使用
where each
,并将两者应用回初始列表的每个元素(
):


这只返回与每个元素中的
like
右参数匹配的元素,因此返回的是空列表。

您的方法几乎就在那里-
like
可以很好地处理平面列表,但需要被告知对左参数的每个元素进行操作:

q)list like\:"*c*"
00b
10b
00b
然后,您可以使用
where each
,并将两者应用回初始列表的每个元素(
):

这只返回与每个元素中的
like
right参数匹配的元素,因此返回的是空列表。

当您查找任何事件时,似乎不关心位置,您可以在此处使用
raze
。它会给你你想要的结果

q)list:(`a`b;`ac`d;`e`af)
q){r where (r:raze x) like y}[list;"a*"]
`a`ac`af
由于您正在查找任何事件,并且似乎不关心位置,您可以在此处使用
raze
。它会给你你想要的结果

q)list:(`a`b;`ac`d;`e`af)
q){r where (r:raze x) like y}[list;"a*"]
`a`ac`af