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

perl – 如何从哈希散列中映射(和排序)值?

发布时间:2020-12-15 22:01:09 所属栏目:大数据 来源:网络整理
导读:我有哈希哈希,如下: %hash = ( a = { b = 1,c =2,d = 3},a1 = { b = 11,c =12,d = 13},a2 = { b = 21,c =22,d = 23} ) 我想提
我有哈希哈希,如下:
%hash = ( a  => { b => 1,c =>2,d => 3},a1 => { b => 11,c =>12,d => 13},a2 => { b => 21,c =>22,d => 23} )

我想提取“b”元素并将其放入数组中.现在,我正在遍历哈希来执行此操作,但我认为我可以通过使用map来略微提高效率.我很确定如果这是一个哈希数组,我会使用这样的东西:

@hasharray = ( { b => 1,{ b => 11,{ b => 21,d => 23} )
@array = map { ($_->{b} => $_) } @hasharray

请原谅我,如果我错了,我还在学习地图是如何工作的.但我想知道的是如何绘制哈希哈希的映射?这甚至可以使用地图吗?我还没有找到任何这样做的例子.

更好的是,此代码的下一步是在数组填充后对其进行排序.我很确定这是可能的,但是我在使用地图自己弄清楚时并不够聪明.我怎样才能一次性完成这一切?

谢谢.
赛斯

解决方法

这提取并排序所有“b”:
my @array = sort { $a <=> $b } map $_->{b},values %hash;

(编辑:李大同)

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

    推荐文章
      热点阅读