代码之家  ›  专栏  ›  技术社区  ›  yibs

如何在Perl中计算csv中具有相同id的项目数

  •  0
  • yibs  · 技术社区  · 6 年前

    因此,我有一个CSV文件,其中的列由一个:。有点像这样的格式用户:groupnumber

    x:2
    y:2
    z:4
    p:1
    q:4
    

    因此,x组在该组中有2个用户,4组有2个用户,1组有1个用户。

    我可以使用perl来做什么?我似乎想不出来。我曾想过将它们放入散列,但我不知道如何计算具有相同值的多个键。

    散列是最好的方法吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Borodin    6 年前

    是的,哈希是正确的数据结构。

    #!/usr/bin/perl
    use warnings;
    use strict;
    
    my %count;
    while (<DATA>) {
        chomp;
        my ($user, $group) = split /:/;
        ++$count{$group};
    }
    
    for my $group (keys %count) {
        print "Group $group has $count{$group} members.\n";
    }
    
    __DATA__
    x:2
    y:2
    z:4
    p:1
    q:4