raku - 如何将2元素列表做成哈希表?

标签 raku

我有一个由两个元素组成的列表的列表,例如您想通过(1..5) Z (20..24)获得的内容,我想将其放入一个哈希表(在此示例中,您可以通过{1 => 20, 2 => 21, 3 => 22, 4 => 23, 5 =>24}获得的内容。我可以“手动”完成此操作,但是那不是太优雅,我相信Raku会采用惯用的方式。我想出的优雅替代方法是:

my @a = (1..5) Z (20..24);
my %a;
for @a -> @x {
   %a{@x[0]} = @x[1];

最佳答案

my %h = (1..5) Z=> (20..24);
say %h;  # {1 => 20, 2 => 21, 3 => 22, 4 => 23, 5 => 24}
Z元运算符将运算符作为其名称的一部分,并且默认为,,因此默认情况下会创建列表。如果添加Pair构造函数(又名fat-逗号),则创建Pair的列表,您可以将其输入Hash

一个替代解决方案是flat十个Z的结果:
my %h = flat (1..5) Z (20..24);

关于raku - 如何将2元素列表做成哈希表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60906767/

相关文章:

raku - MixHash 很有用 - 但需要一些说明

parsing - 如何使用 Perl 6 从嘈杂的文件中提取一些数据?

raku - 文件 ctime 在 perl 5 和 perl 6 下不同

recursion - 鸭图到底有什么作用?

regex - 捕获并执行多行代码并将结果合并到 raku

raku - 为什么 100 ~~ ^100 在 Perl 6 中返回 false?

raku - 如何使用 NativeCall 从 Perl 6 中正确使用 libXL?

raku - 如何从Perl6中的匿名递归子返回?

hash - 如何在Raku中实现Python的摘要功能?

raku - 如何在 Perl6 NativeCall 结构中定义固定长度字符串?