gpt4 book ai didi

Perl 在单个散列本身中获取散列键值计数

转载 作者:行者123 更新时间:2023-12-04 09:27:39 25 4
gpt4 key购买 nike

我编写了一个脚本来处理来自 $data 的数据。变量并获取每个键的值的计数。
该脚本工作正常,但我生成了 2 个名为 %data_hash 的哈希值, %count_hash .一个用于存储数据,另一个用于获取这些键值的计数。

#!/usr/bin/perl

use strict;
use warnings;

use Data::Dumper;

my $data = "KEY1,VAL1
KEY2,VAL1
KEY1,VAL2
KEY1,VAL3
KEY1,VAL4
KEY2,VAL2
KEY2,VAL3
KEY2,VAL4
KEY1,VAL5
";

my (%data_hash, %count_hash);
foreach my $each_data (split /\n/, $data){
my ($key, $val) = (split /,/, $each_data);
push( @{$data_hash{$key}}, $val );
}

print Dumper(\%data_hash);

foreach my $key (sort keys %data_hash) {
$count_hash{$key} = scalar @{$data_hash{$key}};
}

print Dumper(\%count_hash);
我可以使用单个散列而不是 2 并通过保留数据来获取计数吗?

最佳答案

你当然可以:

#!/usr/bin/perl

use strict;
use warnings;

use Data::Dumper;

my $data = "KEY1,VAL1
KEY2,VAL1
KEY1,VAL2
KEY1,VAL3
KEY1,VAL4
KEY2,VAL2
KEY2,VAL3
KEY2,VAL4
KEY1,VAL5
";

my (%data_hash, %count_hash);
foreach my $each_data (split /\n/, $data){
my ($key, $val) = (split /,/, $each_data);
push( @{$data_hash{$key}{vals}}, $val );
$data_hash{$key}{num_vals}++;
}

print Dumper(\%data_hash);

关于Perl 在单个散列本身中获取散列键值计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62951444/

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