返回kdb中的表列表

返回kdb中的表列表,kdb,q-lang,Kdb,Q Lang,kdb中有一个函数生成多个表作为结果。我的主要目标是分析使用python生成的每个表 有没有一种方法可以让它返回一个表列表或一些表字典,这样我就可以将它导出到python中,或者我应该尝试其他方法?任何关于这方面的线索都将不胜感激。谢谢不清楚您在问什么-您有生成多个表的函数吗?您想返回这些表的列表吗?如果是这样的话,你有 f:{t:([]a:x?`1;b:x?10);q:([]c:x?`2;d:x?10f)} 如果要修改以同时返回t和q,只需从函数中手动构造一个列表: q)f:{t:([]a:

kdb中有一个函数生成多个表作为结果。我的主要目标是分析使用python生成的每个表


有没有一种方法可以让它返回一个表列表或一些表字典,这样我就可以将它导出到python中,或者我应该尝试其他方法?任何关于这方面的线索都将不胜感激。谢谢

不清楚您在问什么-您有生成多个表的函数吗?您想返回这些表的列表吗?如果是这样的话,你有

f:{t:([]a:x?`1;b:x?10);q:([]c:x?`2;d:x?10f)}
如果要修改以同时返回t和q,只需从函数中手动构造一个列表:

q)f:{t:([]a:x?`1;b:x?10);q:([]c:x?`2;d:x?10f);(t;q)}
q)f 3
+`a`b!(`o`p`l;5 8 5)
+`c`d!(`ig`nf`no;9.149882 9.030751 7.750292)
或者,您也可以通过在每个表上使用
登记
,并连接这些操作的结果来返回表:

q)f:{t:([]a:x?`1;b:x?10);q:([]c:x?`2;d:x?10f);enlist[t],enlist[q]}
q)f 3
+`a`b!(`n`a`a;6 9 0)
+`c`d!(`nn`mi`om;9.216436 1.809536 6.434637)
或者,如果使用
each
将多个输入传递给返回单个表的函数,结果自然将是一个表列表:

q)f:{t:([]a:x?`1;b:x?10)}
q)f each 3 3
+`a`b!(`l`o`d;9 5 2)
+`a`b!(`h`m`g;9 5 9)
您可以进行的另一个修改是在创建每个表时将其加入到表列表中:

q)f:{tl:();
     t:([]a:x?`1;b:x?10);
     tl,:enlist t;
     q:([]c:x?`2;d:x?10f);
     tl,:enlist q;
     tl}
q)f 3
+`a`b!(`a`l`i;1 9 1)
+`c`d!(`db`mi`la;2.371288 5.67081 4.269177)
这对于分配表来说相当冗长,但您不需要直接这样做,您也可以这样做:

 q)f:{tl:();
      tl,:enlist ([]a:x?`1;b:x?10);
      tl,:enlist ([]c:x?`2;d:x?10f);
      tl}

要获得相同的输出,请在创建表时将每个表连接到列表,然后返回表列表。

不清楚您在问什么-您是否有生成多个表的函数?您想返回这些表的列表吗?如果是这样的话,你有

f:{t:([]a:x?`1;b:x?10);q:([]c:x?`2;d:x?10f)}
如果要修改以同时返回t和q,只需从函数中手动构造一个列表:

q)f:{t:([]a:x?`1;b:x?10);q:([]c:x?`2;d:x?10f);(t;q)}
q)f 3
+`a`b!(`o`p`l;5 8 5)
+`c`d!(`ig`nf`no;9.149882 9.030751 7.750292)
或者,您也可以通过在每个表上使用
登记
,并连接这些操作的结果来返回表:

q)f:{t:([]a:x?`1;b:x?10);q:([]c:x?`2;d:x?10f);enlist[t],enlist[q]}
q)f 3
+`a`b!(`n`a`a;6 9 0)
+`c`d!(`nn`mi`om;9.216436 1.809536 6.434637)
或者,如果使用
each
将多个输入传递给返回单个表的函数,结果自然将是一个表列表:

q)f:{t:([]a:x?`1;b:x?10)}
q)f each 3 3
+`a`b!(`l`o`d;9 5 2)
+`a`b!(`h`m`g;9 5 9)
您可以进行的另一个修改是在创建每个表时将其加入到表列表中:

q)f:{tl:();
     t:([]a:x?`1;b:x?10);
     tl,:enlist t;
     q:([]c:x?`2;d:x?10f);
     tl,:enlist q;
     tl}
q)f 3
+`a`b!(`a`l`i;1 9 1)
+`c`d!(`db`mi`la;2.371288 5.67081 4.269177)
这对于分配表来说相当冗长,但您不需要直接这样做,您也可以这样做:

 q)f:{tl:();
      tl,:enlist ([]a:x?`1;b:x?10);
      tl,:enlist ([]c:x?`2;d:x?10f);
      tl}

要获得相同的输出,请在创建表时将每个表连接到列表,然后返回一个表列表。

现在更清楚了—如何将这些表导入python?您是在尝试保存到文本文件并导入,还是在使用kdb/python接口?我有一个kdb接口,可以将表导出到xls文件。听起来您可能只需要上述前两种方法中的一种-分配每个表,并在最后列出一个表。还有一个修改,你也可以做,我会在现在编辑它没有问题!看来你的主要精力是Python,你应该考虑退房。我现在为AQAQ工作,只是为了充分披露,但我在培训时做了这些课程,这对于在KDB中获得良好的基础非常有用,甚至只是免费课程。如果表中的列数不同,则该方法似乎不起作用。有什么办法吗?我刚开始看aquaq视频,虽然现在已经清楚了一点——您如何将这些导入到python中?您是在尝试保存到文本文件并导入,还是在使用kdb/python接口?我有一个kdb接口,可以将表导出到xls文件。听起来您可能只需要上述前两种方法中的一种-分配每个表,并在最后列出一个表。还有一个修改,你也可以做,我会在现在编辑它没有问题!看来你的主要精力是Python,你应该考虑退房。我现在为AQAQ工作,只是为了充分披露,但我在培训时做了这些课程,这对于在KDB中获得良好的基础非常有用,甚至只是免费课程。如果表中的列数不同,则该方法似乎不起作用。有什么办法吗?不过我刚刚开始看aquaq的视频