gpt4 book ai didi

perl - 引用数组和顺序

转载 作者:行者123 更新时间:2023-12-02 00:10:47 26 4
gpt4 key购买 nike

假设我有一个散列,其中的键/值对如下:

Name  Scores
Bob 67 89 77 89
Kim 99 98 95 90
Dan 67 90 73 88
. . .goes on

键是名字,值是考试成绩。现在值指的是数组。

我知道哈希有一个排序函数,但假设我想找到每个学生的中位数分数。

最终输出:

Name Median 
Bob 83
( . . .and so on)

要找到中位数,我需要先将分数按从低到高的顺序排列。
是否有哈希排序函数,我可以在其中为每个学生排序考试成绩?

感谢您的帮助。

最佳答案

内置的 sort 唯一可以排序的是标量列表;它无法对哈希进行排序。事实上,不可能对散列进行排序。相反,对散列的键进行排序。人们可以很容易地对数组的索引进行排序,但这里完全没有必要使用这种间接方式。

您有一个数字列表,并且您希望在不需要任何外部信息的情况下对该数字列表进行排序。

my @sorted_scores = sort { $a <=> $b } @scores;

也就是说

my @sorted_scores = sort { $a <=> $b } @{ $scores{'Bob'} };

中位数是

my $mid_idx = int(@sorted_scores / 2);
my $median = @sorted_scores % 2
? $sorted_scores[$mid_idx]
: ( $sorted_scores[$mid_idx-1] + $sorted_scores[$mid_idx-0] ) / 2;

关于perl - 引用数组和顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15488851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com