首页 > 解决方案 > 如何将 2 元素列表的列表变成哈希?

问题描述

我有一个二元素列表的列表,例如你得到的(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];

标签: raku

解决方案


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

元运算符将Z运算符作为其名称的一部分,默认为,,因此默认创建列表。如果您添加Pair构造函数(又名胖逗号),那么您将创建一个Pairs 列表,您可以将其输入到Hash.

另一种解决方案是flat10 的结果Z

my %h = flat (1..5) Z (20..24);

推荐阅读