如何按哈希值之一对哈希引用数组进行排序?

2024-03-26

首先,请原谅我生锈的 Perl。我正在尝试修改 Bugzilla 的“whine.pl”以生成按严重性排序的错误列表。

所以它给了我一个哈希引用数组。每个哈希值都包含有关特定错误的大量信息(ID、受让人、严重性等)。我想按严重性对数组进行排序。最好的方法是什么?

我想出了几种可能性。一种是创建五个数组(每个严重性级别一个),然后循环该数组并将哈希引用推送到适当的严重性级别数组中。之后,我可以重新组装它们并用排序后的数组替换原始数组。

我的朋友提出的另一种方法是将严重级别(以文本形式存储在哈希中)分配给某些数字,并对它们进行 cmp。也许是这样的?

sub getVal {
    my $entry = $_[0];
    %lookup = ( "critical" => 0, ... );
    return $lookup(entry("bug_severity"));
}
@sorted = sort { getVal($a) <=> getVal($b) } @unsorted;

为了避免不必要地多次调用 getVal,您可以使用“装饰、排序、取消装饰”。装饰是获取您真正关心的信息:

my @decorated = map { [ $_, getVal($_) ] } @unsorted;

然后对装饰列表进行排序:

my @sortedDecorate = sort { $a->[1] <=> $b->[1] } @decorated;

然后取回原始信息(未修饰):

my @sorted = map { $_->[0] } @sortedDecorate;

或者更类似于 Perl 的方式来做到这一点:

@sorted = map { $_->[0] }
          sort { $a->[1] <=> $b->[1] }
          map { [ $_, getVal($_) ] } @unsorted;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何按哈希值之一对哈希引用数组进行排序? 的相关文章

  • 如何将一堆 perl 模块加载到 perl 脚本中

    这就是我想做的 在我制作 开发的每个脚本中 我总是调用 Perl 库和子例程 例如 directory bin perl system source directory cshrc use Net Domain qw hostname ho
  • 如何按层次结构对文件路径名进行排序?

    我想按层次结构对文件名进行排序 假设我有以下文件夹列表 D Movies Hollywood Comedy adultcomedy D Movies Hollywood Comedy horrorcomedy D Movies Hollyw
  • 对 Big O 表示法仍然有点困惑

    所以我一直在尽力理解 Big O 表示法 但仍然有一些事情我感到困惑 所以我一直读到如果某件事是 O n 那么它usually指的是算法的最坏情况 但它不一定要指最坏的情况 这就是为什么我们可以说插入排序的最佳情况是 O n 但是 我无法真
  • For 循环和词法作用域变量

    版本 1 use warnings use strict my count 4 for count 1 8 print Count count n last if count 6 if not defined count print Cou
  • Java 按日期作为字符串对列表 进行排序

    我有一个类型列表 我想按日期元素对该列表进行排序 我用谷歌搜索 看到了一些具有可比性的解决方案 但是是否有可能在不实现类中接口的情况下做到这一点 我的列表如下所示 列表 id 33 文本 test1 日期 06 02 15 id 81 文本
  • 如何使用 jq 对可能不存在的数组进行排序?

    给定以下 JSON alice items foo bar bob items bar foo charlie items foo bar 我可以排序items数组如下 jq lt users json map items sort ite
  • 如何允许用户对列表中的项目重新排序?

    我有一个 Android 应用程序 用户可以在其中将项目添加到列表中 并且我希望他们能够按照自己的意愿对列表中的项目进行重新排序 而不是仅仅向他们提供不同的排序顺序 为项目添加位置设置 它们来自数据库 很容易 但是用户可以使用哪种 UI 元
  • Perl Regex:如何从 CSV 行中删除引号内的引号

    我从 CSV 文件中得到了一行 作为场围场和 作为字段分隔符作为字符串 有时有 在打破场围的数据中 我正在寻找一个正则表达式来删除这些 我的字符串看起来像这样 my csv qq 123456 024003 Stuff 28 stuff w
  • 比较周期性数据的快速方法

    假设我有任意类型的数据集 A B C D 并且我想将其与另一个数据集进行比较 我希望 A B C D B C D A C D A B 和 D A B C 的比较成立 但是不适用于 A C B D 或任何其他未类似排序的集合 有什么快速方法可
  • 如何对 MySQL 数据库中的 ENUM 列进行排序?

    I have colorMySQL 表中的列类型为ENUM RED YELLOW MY COLOR BLACK 还有另一个name列的类型是VARCHAR 30 我想按以下顺序获取所有表行 YELLOW首先行 排序依据name RED最后一
  • 按两个字段对 Python 列表进行排序 [重复]

    这个问题在这里已经有答案了 我从排序的 csv 创建了以下列表 list1 sorted csv1 key operator itemgetter 1 我实际上想按两个标准对列表进行排序 首先按字段 1 中的值 然后按字段 2 中的值 我该
  • 我能否确保在 5.10+ 上编写的 Perl 代码可以在 5.8 上运行?

    Perl 5 10 和 5 12 的一些新功能 例如 say 被定义为功能 您可以使用 feature 编译指示显式启用或禁止这些功能 但其他添加 例如正则表达式的命名捕获组 是隐式的 当我使用 5 10 解释器编写 Perl 但希望它也能
  • 查找数组中总和等于给定值的最小元素

    我试图找出数组中总和等于的最小元素 给定的输入 我尝试了几个输入总和 但只能找到一个 在第一种情况下配对 而我需要实现的不仅仅是一对 var arr 10 0 1 20 25 30 var sum 45 var newArr console
  • 当一个模块安装了两个版本时 Perl 会做什么?

    我在正在使用的远程机器上没有 root 访问权限 因此我使用 cpanm 和 local lib 的组合 如下所述here https stackoverflow com a 2980715 1156644将 CPAN 模块安装到我的本地目
  • 以不同顺序对多列上的结构化 Numpy 数组进行排序

    我有一个结构化的 numpy 数组 dtype price float counter int values 35 1 36 2 36 3 a np array values dtype dtype 我想按价格排序 如果价格相等则按计数器排
  • Perl Mongo 查找对象 ID

    你会认为这是一件简单的事情 我有一个集合中的对象 ID 列表 我想根据对象 ID 获取单个记录 谷歌搜索过 但没有任何帮助 所以我有对象 ID 5106c7703abc120a04070b34 my client MongoDB Mongo
  • 如何拆分一行并重新排列其元素?

    我在一行中有一些数据 如下所示 abc edf xyz rfg yeg udh 我想呈现如下数据 abc xyz yeg edf rfg udh 以便打印备用字段并用换行符分隔 有没有这样的衬里 下列awk脚本可以做到这一点 gt echo
  • 对数据框的行进行排序

    我有以下数据框 adjusted RFC df Node Feature Indicator Scaled Class Direction True False 0 0 km lt 0 181 class 4 0 gt 1 NA 125 1
  • perl xs - 从 c 数组返回 perl 数组

    使用 XS 我尝试将值从 C 数组传递到可在脚本中使用的 Perl 数组 这是我的 xs 文件中的代码 AV DoubleArray getPerlArray CODE r newAV for size t i 0 i lt THIS gt
  • 如何设置 $!在 Perl 中

    我想在 perl 中编写一些设置 的函数 与内置 perl 函数类似 当我尝试执行此操作时 它抱怨 参数 无法创建管理员用户 在标量分配中不是数字 我试过用谷歌搜索这个 但不幸的是谷歌不会在 所以结果很难得到 if createUser a

随机推荐

  • 为什么我的 Nginx 反向代理执行 301 重定向而不是代理?

    我在 docker 容器内有一个 Nginx 反向代理 它监听端口 3000 并暴露给 3002 docker run p 3002 3000 这个想法是这个反向代理将代理 my app到我的笔记本电脑中在端口 8080 上运行的实例 和
  • 以编程方式更改视图的右边距?

    这个属性可以在Java代码中动态改变吗 android layout marginRight 我有一个TextView 它必须动态地将其位置向左更改一些像素 如何以编程方式做到这一点 编辑 一种更通用的方法 不依赖于布局类型 除了它是支持边
  • 如何在 IndexedDB 中进行 JOIN 类型查询

    我尝试按照以下教程进行操作http hacks mozilla org 2010 06 comparing indexeddb and webdatabase http hacks mozilla org 2010 06 comparing
  • 如何在 jquery 表单验证上显示独特的成功消息

    希望你能在这方面帮助我 我目前正在使用这个 jQuery 插件 验证 主页 http bassistance de jquery plugins jquery plugin validation 我一直在这里阅读相关问题 但这是最接近的 h
  • 我可以用什么来替换 HTML 中的   ?

    nbsp nbsp 我觉得很丑 边距和 或填充 CSS 属性 如下所示 p style padding left 10px Hello p 值得注意的是 放置这样的内联样式通常被认为是不好的做法 您通常在外部 css 文件中声明一个选择器并
  • 服务器场(服务计划)SKU

    是否有文档列出了 Azure 应用服务计划 服务器场 支持的 sku 名称和层 例如 名称 S1 等级 标准 S1 标准 和 名称 Y1 层 动态 功能消耗计划 支持的值列表 是否有第二年的消费计划 和服务器配置确实有助于规划 有多种方法可
  • Rails 4 中“确认”条件的干净方法

    我的 Rails4 页面上有一个使用 slim 语法的 link to 以下链接 to link to exports path data confirm Are you sure 现在需要仅在特定条件下显示确认消息 我们如何在rails4
  • 如何删除数据框中值的顺序不重要的行

    我有一个像这样的数据框 source target weight 1 2 5 2 1 5 1 2 5 1 2 7 3 1 6 1 1 6 1 3 6 我的目标是删除重复的行 但源列和目标列的顺序并不重要 事实上 两列的顺序并不重要 应该将其
  • 使用 Linq to SQL 删除表中的行

    我有一个体育数据库 其中有一个表 groupmembers 其中包含字段 ID groupID 和 memberID 我从名为 txtRemoveGroupMember 的文本框中获取memberID 并从复选框列表中获取groupID 现
  • 使用 Boost Spirit 解析语法

    我正在尝试解析像下面这样的树表达式之类的 C 函数 使用精神解析器框架 http en wikipedia org wiki Spirit Parser Framework F A B GREAT SOME NOT C YES 为此 我尝试
  • 如何在作为协议类型的 Swift 通用数据结构中使用弱引用?

    我想在通用数据结构中使用弱引用 在里面 下面是数组的示例 但通常是任何泛型类型 我几乎可以得到它 上班 我的实验开始得很顺利 以下作品 Array of weak references OK struct WeakReference
  • 更改 ListView 阴影颜色和大小

    当 ListView 中的项目列表比 ListView 的大小长时 您会看到一个阴影 指示上方或下方有更多项目 默认情况下 该阴影是黑色的 这是不可取的 如果我将 cacheColorHint 设置为以下内容 android cacheCo
  • 调用布尔值的成员函数 fetchAll()

    我有以下问题 这个错误一直伴随着我 致命错误 未捕获错误 在 C xampp htdocs certificado functions php 49 中的布尔值上调用成员函数 fetchAll 堆栈跟踪 0 C xampp htdocs c
  • 在抽象方法上实现“after”装饰器

    我正在尝试编写一个抽象基类A它将有一个抽象方法run用户 开发人员预计会超载 我想强制执行一些 之后 行为自动应用于派生类B 这样之后B run 运行完毕后 将调用另一个标准方法 在数据管道中 这可以例如提交或回滚事务 有办法实现这一点吗
  • 用周围值的平均值替换缺失值

    我的数据集如下所示 我们称之为 a date value 2013 01 01 12 2 2013 01 02 NA 2013 01 03 NA 2013 01 04 16 8 2013 01 05 10 1 2013 01 06 NA 2
  • THREE.js 使用 DOMElements 的 SphereGeometry 全景热点

    我使用以下命令创建了一个简单的 WebGL 3D 全景应用程序SphereGeometry PerspectiveCamera and a CanvasTexture 现在 我希望通过在场景的某些部分添加 热点 来使场景栩栩如生Sphere
  • 为什么我的 takeWhile 无法与我的 Stream 配合使用

    以下代码打印 1 令人困惑的是 如果我删除评论 它会返回 4 这正是我所期望的 var max 0 lazy val list Stream Int 1 Stream from 2 list takeWhile x gt max x x l
  • 非常快速的 3D 距离检查?

    有没有一种方法可以进行快速而肮脏的 3D 距离检查 虽然结果很粗糙 但速度非常快 我需要进行深度排序 我用STLsort像这样 bool sortfunc CBox a CBox b return a gt Get3dDistance Pl
  • iPhone 音量已更改事件(音量已达到最大)

    我在用着 AudioSessionAddPropertyListener kAudioSessionProperty CurrentHardwareOutputVolume audioVolumeChangeListenerCallback
  • 如何按哈希值之一对哈希引用数组进行排序?

    首先 请原谅我生锈的 Perl 我正在尝试修改 Bugzilla 的 whine pl 以生成按严重性排序的错误列表 所以它给了我一个哈希引用数组 每个哈希值都包含有关特定错误的大量信息 ID 受让人 严重性等 我想按严重性对数组进行排序