我有一个由两个元素组成的列表的列表,例如您想通过(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/