加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

这是在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的帮助下)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读