1
0
mirror of https://github.com/stedolan/jq.git synced 2024-05-11 05:55:39 +00:00

builtin.jq: simpler and faster transpose (#2758)

This commit is contained in:
pkoppstein
2023-07-24 20:12:23 -04:00
committed by GitHub
parent 330559643a
commit 8f49600a6b
2 changed files with 5 additions and 8 deletions

View File

@ -181,14 +181,7 @@ def combinations(n):
| combinations;
# transpose a possibly jagged matrix, quickly;
# rows are padded with nulls so the result is always rectangular.
def transpose:
if . == [] then []
else . as $in
| (map(length) | max) as $max
| length as $length
| reduce range(0; $max) as $j
([]; . + [reduce range(0;$length) as $i ([]; . + [ $in[$i][$j] ] )] )
end;
def transpose: [range(0; map(length)|max // 0) as $i | [.[][$i]]];
def in(xs): . as $x | xs | has($x);
def inside(xs): . as $x | xs | contains($x);
def repeat(exp):

View File

@ -1487,6 +1487,10 @@ transpose
[[1], [2,3]]
[[1,2],[null,3]]
transpose
[]
[]
ascii_upcase
"useful but not for é"
"USEFUL BUT NOT FOR é"