KDB和x2B/问:如何查找字典中与某个值匹配的所有条目?

KDB和x2B/问:如何查找字典中与某个值匹配的所有条目?,kdb,Kdb,查找函数?返回字典中给定值的第一个匹配项: q)d:1 2 3 4!100 200 100 400 q)d 1| 100 2| 200 3| 100 4| 400 q)d?100 1 q) 如何找到字典中与该值匹配的所有条目?简单的实现如下: f: {(key x) where (y=) value x} f[d;100] /returns 1 3 基本上,找到哪些索引具有您要查找的值并获得匹配的键一个简单的实现是这样的: f: {(key x) where (y=) value x} f[

查找函数
返回字典中给定值的第一个匹配项:

q)d:1 2 3 4!100 200 100 400
q)d
1| 100
2| 200
3| 100
4| 400
q)d?100
1
q)

如何找到字典中与该值匹配的所有条目?

简单的实现如下:

f: {(key x) where (y=) value x}
f[d;100] /returns 1 3

基本上,找到哪些索引具有您要查找的值并获得匹配的键

一个简单的实现是这样的:

f: {(key x) where (y=) value x}
f[d;100] /returns 1 3
q)d:1 2 3 4!100 200 100 400
q)where d=100
1 3

基本上,找到哪些索引具有您要查找的值,并获得匹配的键

Nice!非常优雅。然而,这将简单地返回索引,您仍然需要一个步骤来获取密钥本身。这不是真的。索引应该是
02
,而不是
13
。你可以将这个习惯用法应用到以下词典中,进一步了解它的作用:
d:“abcd”!100 200 400
。是的,你说得对。我想我在测试earlierNice时犯了一个错误!非常优雅。然而,这将简单地返回索引,您仍然需要一个步骤来获取密钥本身。这不是真的。索引应该是
02
,而不是
13
。你可以将这个习惯用法应用到以下词典中,进一步了解它的作用:
d:“abcd”!100 200 400
。是的,你说得对。我想我之前测试时犯了一个错误
q)d:1 2 3 4!100 200 100 400
q)where d=100
1 3