这是在Perl中提取AoH子集的最简洁方法吗?
发布时间:2020-12-16 06:22:29 所属栏目:大数据 来源:网络整理
导读:出于好奇,还有另一种方法来提取我的AoH结构的子集吗? AoH是’矩形'(即保证在所有hashref上具有相同的密钥). 使用temp var和嵌套映射对于本质上是花哨的散列片来说似乎有点过分: use strict;use warnings;use Data::Dump 'dump';my $AoH = [ # There are ma
出于好奇,还有另一种方法来提取我的AoH结构的子集吗? AoH是’矩形'(即保证在所有hashref上具有相同的密钥).
使用temp var和嵌套映射对于本质上是花哨的散列片来说似乎有点过分: use strict; use warnings; use Data::Dump 'dump'; my $AoH = [ # There are many more keys in the real structure { a => "0.08",b => "0.10",c => "0.25" },{ a => "0.67",b => "0.85",c => "0.47" },{ a => "0.06",b => "0.57",c => "0.84" },{ a => "0.15",b => "0.67",c => "0.90" },{ a => "1.00",b => "0.36",c => "0.85" },{ a => "0.61",b => "0.19",c => "0.70" },{ a => "0.50",b => "0.27",c => "0.33" },b => "0.69",c => "0.12" },{ a => "0.83",c => "0.15" },{ a => "0.74",b => "0.25",c => "0.36" },]; # I just want the 'a's and 'b's my @wantedKeys = qw/ a b /; # Could have multiple unwanted keys in reality my $a_b_only = [ map { my $row = $_; +{ map { $_ => $row->{$_} } @wantedKeys } } @$AoH ]; dump $a_b_only; # No 'c's here 解决方法
这是通过一个地图和任意键列表来实现的:
my @wantedKeys = qw/a b/; my $wanted = [ map { my %h; @h{@wantedKeys} = @{ $_ }{@wantedKeys}; %h } @$AoH ]; (在this post的帮助下) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |