加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在perl中加入键和值

发布时间:2020-12-15 22:01:22 所属栏目:大数据 来源:网络整理
导读:我有一个带有以下键/值对的哈希 4 = model12 = model2 我想要从上面的哈希创建以下字符串 4 X model1,2 X model2 我尝试了以下内容 my %hash,foreach my $keys (keys %hash) { my $string = $string . join(' X ',$keys,$hash{$keys});}print $string; 我得
我有一个带有以下键/值对的哈希
4 => model1
2 => model2

我想要从上面的哈希创建以下字符串

4 X model1,2 X model2

我尝试了以下内容

my %hash,foreach my $keys (keys %hash) {
    my $string = $string . join(' X ',$keys,$hash{$keys});
}
print $string;

我得到的是

4 X model12Xmodel2

如何实现所需的结果4 X model1,2 x model2?

解决方法

你可以这样做:
my %hash = (4 => "model1",2 => "model2");
my $str = join(",",map { "$_ X $hash{$_}" } keys %hash);
print $str;

输出:

4 X model1,2 X model2

这个怎么运作:

map {expr} list为列表中的每个项目计算expr,并返回包含这些评估的所有结果的列表.这里,为散列的每个键计算“$_ X $hash {$_}”,因此结果是键X值字符串的列表.连接负责将逗号放在每个字符串之间.

请注意,如果您存储(项目,数量)对,则您的哈希值有点不寻常.它通常是相反的方式:

my %hash = ("model1" => 4,"model2" => 2);
my $str = join(",map { "$hash{$_} X $_" } keys %hash);

因为使用您的方案,您不能在哈希中为两个不同的项目存储相同的数量.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读