本文介绍了密钥和散列值将具有相同的“顺序”在Perl中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道一个散列不是在perl中排序的。我所关心的是如果我可以依靠与索引关系产生的键和值。

I understand that a hash is not ordered in perl. What I am concerned about is if I can depend on the keys and values coming out with an index relationship.

假设我有这个散列值

my %h = ("a" => 1, "b" => 2, "c" => 3, "d" => 4);

如果我做了键%h ,我可能会得到

If I do keys %h, I might get

("b", "a", "d", "c")

我会保证值%h 会以相同的顺序出现匹配键?我可以期待吗?

Would I be guaranteed that values %h would come out in the same order to match keys? Can I expect?

(2, 1, 4, 3)

还是不能保证键%h 之间有任何索引关系。值%h

推荐答案

是的。只要散列没有改变(插入或删除),每一个将保持相同的顺序:

Yes. As long as the hash is not changed (insertion or deletion), keys, values and each will keep the same order:

- 从

– from perldoc -f keys

所以你可以安全地复制一个哈希像:

So you could safely copy a hash like:

my %orig = ...;
my %copy;
@copy{keys %orig} = values %orig;

这篇关于密钥和散列值将具有相同的“顺序”在Perl中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-18 02:21