【问题标题】:how to print an array in particular format in perl?如何在 perl 中以特定格式打印数组?
【发布时间】:2014-02-28 05:46:25
【问题描述】:

谁能告诉我如何使用 2 个数组一起以特定方式打印?

@array1= "in_1","in_2","in_3";

@array2= "1","0","1";

我希望它们以这种模式打印

in_1 = 1; in_2 = 0; in_3 =1 ;

谢谢

【问题讨论】:

  • 见:stackoverflow.com/questions/38345/… - 这里的一般任务是“zip”,输出是次要的。
  • 注意:@array1 = "in_1","in_2","in_3"; 应该改为@array1 = ("in_1","in_2","in_3"); 或类似的.. 否则它将永远无法工作。

标签: regex arrays algorithm perl perl-module


【解决方案1】:
print map "$array1[$_] = $array2[$_]; ", 0 .. $#array1;

【讨论】:

  • 这打印 in_1 = 1; = ; in_1 = 1;
  • @mayhem @array1= "in_1","in_2","in_3"; 应该是 @array1 = ("in_1","in_2","in_3");@array1 = qw/in_1 in_2 in_3/; - 否则你没有分配一个列表!
  • @user2864740 不能再同意了。
【解决方案2】:

可以使用散列切片(关联数组)

@ary1 = (a,b,c);
@ary2 = (1,2,3);
%hash = ();
@hash{@ary1} = @ary2;

foreach $key ( keys %hash )
{
    print "$key = $hash{$key}\n";
}

或者只是一个简单的循环。

for (0 .. $#ary1)
{
   print "$ary1[$_] = $ary2[$_]\n";
}

【讨论】:

  • 不保证哈希顺序。我不建议将它用于此类任务。
猜你喜欢
  • 1970-01-01
  • 2013-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多