独特功能是否将唯一属性应用于q kdb中的列表?

时间:2019-10-13 06:21:52

标签: kdb

在应用于列表的asc函数的输出中,我们可以看到输出由已排序的属性组成。

q)asc 1 3 11 10 4
`s#1 3 4 10 11

但是在应用于列表的独特功能的输出中,我们看不到应用于列表的唯一属性。

q)distinct 1 3 11 10 4
1 3 11 10 4

但是,在不同列表和唯一列表(应用了唯一属性的列表)中搜索元素所需的时间几乎相同。

q)n:1000000?1000000
q)d:distinct n
q)\t:100000 d[1021]
45
q)\t:100000 d[632265]
45
q)u:`u#d
q)\t:100000 u[1021]
44
q)\t:100000 u[632265]
48

那么,独特功能是在列表内部内部应用唯一属性并将其转换为哈希表吗?

1 个答案:

答案 0 :(得分:3)

distinct不会将唯一属性应用于列表。您可能会借助attr函数

看到此信息
attr distinct 10?10

何时

将不返回任何内容`
attr `u#distinct 10?10

返回`u

此外,我认为实验可能是错误的:d[1021]似乎是按索引获取元素的常用0(1)时间操作。如果您改用搜索,则会看到区别(我的电脑上的数字):

q)\t:10000 d?770751
85
q)\t:10000 u?770751 
6