perl/中位值/二维哈希/数组的哈希/排序/取整

Perl求数组中位值

use List::Util qw(sum);
use POSIX;

sub median {
        sum((sort { $a <=> $b } @_ )[int($#_/2), ceil($#_/2)])/2;
}
my @a = qw/ 1 2 3 4/;
my $med = median(@a); #就可以得到数组@a的中位值为2.5

Perl二维哈希(hash)的构造及访问

#构造二维哈希
my %hash;
foreach my $i (1..10) {
	 foreach my $j (1..10) {
	 	$hash{$i}{$j} = $i + $j;
	 }
}
#访问
foreach my $k1 (keys %hash) {
	foreach my $k2 (keys %{$hash{$k1}}) {
		print "$hash{$k1}{$k2}\n";
	}
}

Perl数组的哈希(hash)

#定义一个数组的哈希(跟定义一般哈希一样)
my %hash;
#给数组的哈希赋值
$hash{'a'} = [1, 2, 3]; #用[]来强调键值a指代的是一个数组
#往数组的哈希中添加元素100和101
push @{$hash{'a'}}, 100, 101;

Perl按照值的大小给哈希(hash)键排序

my %hash = (
'b' => 1,
'a' => 2,
2 => 3,
);
foreach my $k (sort {$hash{$b} cmp $hash{$a}} keys %hash) {
	print "$hash{$k}\n";
}

Perl取整

use POSIX;
#四舍五入
my $a = 3.454;
sprintf "%0.2f", $a;
#向上取整
ceil()
#向下取整
int()/floor()
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值