gpt4 book ai didi

perl - Perl,将哈希转换为数组

转载 作者:行者123 更新时间:2023-12-03 12:02:13 27 4
gpt4 key购买 nike

如果我在Perl中有一个散列,其中包含完整的和连续的整数映射(即,从0到n的所有键都映射到某个对象,此范围之外没有键),是否有办法将其转换为数组?

我知道我可以遍历键/值对并将它们放入新的数组中,但是有些信息告诉我应该有一种内置的方法。

最佳答案

如果原始数据源是哈希:

# first find the max key value, if you don't already know it:
use List::Util 'max';
my $maxkey = max keys %hash;

# get all the values, in order
my @array = @hash{0 .. $maxkey};

或者,如果您的原始数据源是hashref:
my $maxkey = max keys %$hashref;
my @array = @{$hashref}{0 .. $maxkey};

使用以下示例很容易测试:
my %hash;
@hash{0 .. 9} = ('a' .. 'j');

# insert code from above, and then print the result...
use Data::Dumper;
print Dumper(\%hash);
print Dumper(\@array);

$VAR1 = {
'6' => 'g',
'3' => 'd',
'7' => 'h',
'9' => 'j',
'2' => 'c',
'8' => 'i',
'1' => 'b',
'4' => 'e',
'0' => 'a',
'5' => 'f'
};
$VAR1 = [
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j'
];

关于perl - Perl,将哈希转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2907270/

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