perl – 如何测试哈希中是否存在值?
让我们说我有这个
#!/usr/bin/perl %x = ('a' => 1,'b' => 2,'c' => 3); 我想知道值2是否是%x中的哈希值. 怎么做? 解决方法
从根本上说,散列是为解决相反的问题而优化的数据结构,知道密钥2是否存在.但是,在不知情的情况下很难判断,所以让我们假设不会改变.
这里提出的可能性将取决于: >您需要多久进行一次 一次性 > grep $_ == 2,值%x(也被拼写为grep {$_ == 1}值%x)将返回与哈希存在的一样多的2的列表,或者在标量上下文中火柴.在一个条件下作为布尔值评估,它只会产生你想要的. 重复的op,静态哈希 构造一个将值映射到键的哈希值,并将该值作为自然哈希来测试密钥存在. my %r = reverse %x; if ( exists $r{2} ) { ... } 重复操作,动态哈希 使用如上所述的反向查询.您需要保持最新状态,作为读者/编辑者的练习. (提示:价值碰撞是棘手的) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |