如何将 2 元素列表的列表变成哈希?

von*_*and 9 raku

我有两个元素的列表的列表,就像你用得到的,例如(1..5) Z (20..24),我要制作成一个哈希(在这个例子中,你通过得到什么{1 => 20, 2 => 21, 3 => 22, 4 => 23, 5 =>24}。我能做到“手”,但ISN不太优雅,我相信 Raku 有一种惯用的方法。我想出的不优雅的替代方案是:

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

Eli*_*sen 12

my %h = (1..5) Z=> (20..24);
say %h;  # {1 => 20, 2 => 21, 3 => 22, 4 => 23, 5 => 24}
Run Code Online (Sandbox Code Playgroud)

Z荟萃运营商需要运营商作为其名称的一部分,它默认为,,因此在默认情况下创建列表。如果您添加Pair构造函数(又名胖逗号),那么您将创建一个Pairs列表,您可以将其输入到Hash.

另一种解决方案是flat十个结果Z

my %h = flat (1..5) Z (20..24);
Run Code Online (Sandbox Code Playgroud)