如何在列之间插入分隔符?

che*_*nyf 6 perl6 raku

我有专栏@columns:

my @columns =('column1', 'column2', 'column3');
Run Code Online (Sandbox Code Playgroud)

我有分隔符@separators:

my @separators = (',', '|');
Run Code Online (Sandbox Code Playgroud)

我想逐个插入列之间的分隔符:

column1,column2|column
Run Code Online (Sandbox Code Playgroud)

我的解决方案是:

(@columns »~» (|@separators,"")).join("")
Run Code Online (Sandbox Code Playgroud)

这里我有三列和两个分隔符,如何N-1N列之间插入分隔符?

Bra*_*ert 9

假设它@separators具有正确数量的值,您可以使用roundrobin.

roundrobin( @columns, @separators ).flat.join()
Run Code Online (Sandbox Code Playgroud)


Sci*_*mon 6

所以这适用于任何长度的@columns@separators:

首先,我们使用>>,>>hyper运算符来创建列表.

(@columns >>,>> @separators)

这使 :

[("column1", ","), ("column2", "|"), ("column3", ",")]

然后我们使用单据将其展平为单个列表.

(@columns >>,>> @separators).map( |* )

这使:

("column1", ",", "column2", "|", "column3", ",").Seq

然后我们得到除最后一个值之外的所有数组:

(@columns >>,>> @separators).map(|*).head(*-1)

用于:

("column1", ",", "column2", "|", "column3")

最后加入它没有任何东西:

(@columns >>,>> @separators).map(|*).head(*-1).join("")

最后结果 :

column1,column2|column3

更改列数或分隔符数不会产生任何影响.