请帮我写一个函数来重新排列正数和负数。
我尝试了以下功能,但它没有按预期工作。
q)list:1 2 3 -4 -1 4
q)f:{p:count p1:l where (signum l:asc x) <> -1;d:p-count x;n1:count n2:x where (signum x)=-1;(raze ((n2,d#0),'p1)) except 0}
q)f[list]
-4 1 -1 2 3 4
q)list2: -5 -2 5 2 4 7 1 8 0 -8 //Not working for this input because of length mismatch.
请提供当输入参数 x 和 y 长度不相等时如何处理操作的任何建议,以避免长度错误。
可能不是最有效的方法,但很容易遵循。
n
和p
列表中L
的较短长度p
n
L
元素p
并将n
剩余元素添加到尾部