大佬教程收集整理的这篇文章主要介绍了perl – 如何在迭代时删除哈希元素?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我通常不喜欢使用删除或拼接,我会复制我想要的,而不是删除我不做的.但这一次,由于哈希非常大,我想我想直接删除它.
所以我在做这样的事情:
foreach my $key (keys %hash) { if (should_be_deleted($key)) { delete($hash{$key}); } }
似乎可以正常工作.但是,如果我想删除一些元素,甚至在迭代之前怎么办?我将举例说明:
foreach my $key (keys %hash) { if (should_be_deleted($key)) { delete($hash{$key}); # if $key should be deleted,so does "$key.a","kkk.$key" and some other keys # I already know to calculate. I would like to delete them now... } }
我想到了一些可能的解决方案,例如检查一个键是否仍然存在,作为循环中的第一步,或者首先循环,并创建要删除的键列表(不实际删除它们),然后在另一个循环中实际删除.
你对此有何想法?
双程方式似乎有一个共识.然而,在第一次通过时,我仔细检查已经标记为删除的键,这是非常低效的.这是有点递归的,因为我不仅检查了密钥,还计算了应该删除的其他密钥,尽管它们已经被原始密钥计算了.
也许我需要使用一些更动态的数据结构来迭代键,这将动态更新?
以上是大佬教程为你收集整理的perl – 如何在迭代时删除哈希元素?全部内容,希望文章能够帮你解决perl – 如何在迭代时删除哈希元素?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。