raku - 如何将 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];
解决方案
my %h = (1..5) Z=> (20..24);
say %h; # {1 => 20, 2 => 21, 3 => 22, 4 => 23, 5 => 24}
元运算符将Z
运算符作为其名称的一部分,默认为,
,因此默认创建列表。如果您添加Pair
构造函数(又名胖逗号),那么您将创建一个Pair
s 列表,您可以将其输入到Hash
.
另一种解决方案是flat
10 的结果Z
:
my %h = flat (1..5) Z (20..24);
推荐阅读
- swift - dyld:未加载库:在实际 iPhone 上安装时
- c++ - 使用具有自动范围和结构化绑定的 C++ 迭代向量矩阵?
- javascript - 我试图访问 DOM 中无线电输入的名称属性,但显然所有名称字段的值都为 false?
- regex - NiFi - 使用先前属性 + 硬编码文本创建新属性的新属性
- c++ - std 线程构造函数是否采用可变线程函数?
- java - FAB on click 根据当前显示的片段开始新活动
- c++ - MSVC 编译器尝试调用已删除的复制构造函数,而不是移动地图元素
- django - 正确的日志配置以禁用 django 错误电子邮件
- c++ - 滥用指针会产生分段错误。我仍然不确定如何纠正它
- mysql - Node.js 自动迁移