gpt4 book ai didi

perl - 搜索哈希,如果值为零则删除它

转载 作者:行者123 更新时间:2023-12-02 06:38:43 25 4
gpt4 key购买 nike

我有一些代码如下。我正在尝试搜索散列,如果我遇到一个零值,我想删除整个键/值元素。

my %hashy = (
a => my $a,
b => my $b,
c => my $c,
d => my $d,
e => my $e
);

$hashy{'a'} = 0;
$hashy{'b'} = 1;
$hashy{'c'} = 0;
$hashy{'d'} = 2;
$hashy{'e'} = 1;
my @keys = keys %hashy;
my @values = values %hashy;
my $ind = 0;
foreach my $v (@values) {
delete $hashy{$keys[$ind]} if ($v == 0);
}

因此打印 %hashy 的预期输出将是:b1d2e1(忽略元素的顺序)

目前我得到:c0a0b1d2 这还差得远...任何帮助将不胜感激:)

最佳答案

迭代值不会有帮助,因为您失去了值和键之间的关联,尽管我猜这就是 $ind 应该帮助您跟踪的内容。

只需遍历键即可:

foreach my $k (keys %hashy) {
delete $hashy{$k} if ($hashy{$k} == 0);
}

关于perl - 搜索哈希,如果值为零则删除它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12314403/

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