【问题标题】:How to reformat elements in an array on output?如何在输出时重新格式化数组中的元素?
【发布时间】:2013-02-21 16:19:42
【问题描述】:

使用 Perl,我必须读取格式为逗号分隔的数据

邮政编码,邮政编码内的城市数量,邮政编码内每个城市的列表。这确实适用于虚荣城市,以便我们获得所有使用邮政编码的城市的列表。

当我写出来时,我需要类似的东西

{zipcode,"number of cities,list of cities"}

使用 chomp 到数组中,它会将邮政编码放入数组 [0],将数字放入数组 [0],然后为列表中命名的每个城市添加一个元素。他的列表中可能有 1 个城市或 70 个城市。我如何从那个数组变成我需要的格式。本质上,我正在获取从大数据平台创建的输入文件,并将其格式化为 C# 程序,用作平台的插件。

【问题讨论】:

    标签: perl reformat


    【解决方案1】:
    my $zipcodes = { 33401 => ['West Palm Beach','Green Acres'] }; #initial entries
    push($zipcodes->{33401}, 'Jupiter'); #or add entries by pushing them into the array
    print '{33401,"' . @{$zipcodes->{33401}} . ',' . join(',',@{$zipcodes->{33401}}) . "\"}\n";
    
    #prints {33401,"3,West Palm Beach,Green Acres,Jupiter"}
    

    【讨论】:

    • 我正在从外部 csv 文件中读取这些数据。我不知道值是什么以及每行城市的长度只有 csv 文件中的计数器知道。根据 cntr 的值格式化为 zipcode,cntr,city1 city2 city3...等。
    • 这是一个留给用户的练习,本质上是另一个项目/问题。您将需要遍历您的 excel 文件列/行并将这些变量填充到数据结构中(例如上面提供的那个)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多