当前位置: 首页 > 知识库问答 >
问题:

串联Raku中的列表

赫连昕
2023-03-14

我在寻找一个更简单的解决方案。

我有一个带相应后缀的前缀列表和一个根列表。

my @prefixes = 'A'..'E';
my @suffixes = 'a'..'e';
my @roots = 1, 2;

我想说出所有可能的“单词”:《代码》A1a、《代码》B1b<代码>A2a<代码>E2e。

my @words;
for @roots -> $r {
    for @prefixes.kv -> $i, $p {
        my $s = @suffixes[$i];
        my $word = [~] $p, $r, $s;
        @words.push: $word;
    }
}
say @words; # [A1a B1b C1c D1d E1e A2a B2b C2c D2d E2e]

我想使用zip或cross之类的东西可以更容易地完成这项工作,但我不知道如何。。。

共有2个答案

公羊浩气
2023-03-14

还有一些编写方法:

say @roots X[&join] (@prefixes Z @suffixes);
say @roots.map({ |(@prefixes Z @suffixes)».join($_) });
say @roots.map({ (@prefixes X~ $_) Z~ @suffixes }).flat;
say (|@prefixes xx *) Z~ (@roots X~ @suffixes);
my @formats = (@prefixes Z @suffixes).flat.map(* ~ '%s' ~ *);
say @formats X[&sprintf] @roots;

(注意:这个按不同的顺序打印。)

say do for @roots -> $root {
    |do for (@prefixes Z @suffixes) -> [$prefix, $suffix] {
        $prefix ~ $root ~ $suffix
    }
}
孔运良
2023-03-14

我的解决方案是:

say @roots.map: |(@prefixes >>~>> * <<~<< @postfixes);

为Metaoping串联创建一个WhateverCode,滑动结果以获得一个在末尾只有标量值的Seq。

 类似资料:
  • 我发现,对于脚本编写成瘾者来说,加入raku的一个巨大卖点就是拥有这样的结构 然而,我似乎不能写这样的东西。据我所知,使用<代码>执行此操作。substStr的方法太难看了,这种链式的s///code>或者甚至也tr///code>基本上会成为sed用户等的门户药物。 我的问题是,我是否遗漏了什么,在拉库是否有可能发生类似的事情。我不是初学者,我想不出来。

  • 我使用的是Windows10i7第四代笔记本电脑,内存为8GB。 我想找出从1到100000000的数字之和可以被5整除。 我正在尝试在Raku REPL中运行此代码: 代码运行了45分钟,仍然没有输出。我该如何克服呢? 在这种情况下,如何应用并发呢?我认为以上问题可以通过并发或任务并行来解决!!

  • 问题内容: 假设我有一个这样的函数: 它返回与给定顶点相邻的顶点列表。现在,我想创建一个包含所有邻居的列表。我这样做是这样的: 有没有更Python的方式做到这一点? 问题答案: [x for n in getNeighbors(vertex) for x in getNeighbors(n)] 要么

  • 我想使用PowerShell生成命令列表,将文件从一个位置移动到另一个位置。(我确信PowerSell确实可以移动,但我想先看看命令列表……是的,我知道)。 文件位于下一层的一系列子文件夹中,需要移动到另一台主机上相应的一系列子文件夹中。子文件夹具有8位标识符。我需要一系列命令,比如 该文件需要进入相应的8位标识符文件夹的\导入子目录。 下面的PowerShell将生成我需要的数据 但我一直在研究

  • 问题内容: 因此,有两种获取列表并将第二个列表的成员添加到第一个列表的方法。您可以使用列表串联,也可以对其进行迭代。您可以: 或者您可以: 要么 我的问题是:哪个更快,为什么?我使用两个极大的列表(最多10000个对象)进行了测试,似乎迭代方法比列表串联快得多(如l1 = l1 + l2)。为什么是这样?有人可以解释吗? 问题答案: 一次添加每个项目,这是导致它变慢的原因,以及对的重复调用。 但是