arrays - 在 Perl 中,如何创建一个其键来自给定数组的散列?

标签 arrays perl hash

假设我有一个数组,并且我知道我会做很多“该数组是否包含 X?”的问题。检查。执行此操作的有效方法是将该数组转换为哈希,其中键是数组的元素,然后您可以只说

if($hash{X}) { ... }

有没有一种简单的方法来进行数组到哈希的转换?理想情况下,它应该足够通用,能够获取匿名数组并返回匿名哈希。

最佳答案

%hash = map { $_ => 1 } @array;

它不像“@hash{@array} = ...”解决方案那么短,但这些解决方案要求散列和数组已经在其他地方定义,而这个解决方案可以采用匿名数组并返回匿名哈希。

它的作用是获取数组中的每个元素并将其与“1”配对。当这个 (key, 1, key, 1, key 1) 对列表被分配给一个哈希时,奇数编号成为哈希的键,偶数编号成为各自的值。

关于arrays - 在 Perl 中,如何创建一个其键来自给定数组的散列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/95820/

相关文章:

c++ - 从文件创建二维 vector ?

perl - 为什么inotify会丢失事件?

perl - Mojo::UserAgent 证书验证失败

ruby - 单个 ruby​​ 进程中的数字上的 `hash` 是否一致?

javascript - 所有的 JavaScript Iterables 都有 next() 方法吗?

php - 从数据库中获取多个字段到数组

perl - Perl 如何在不显示终端的情况下提示输入密码?

arrays - 从 ruby​​ 中的数组创建哈希

algorithm - 字符串的局部敏感散列?

javascript - XmlHttpRequest POST 数据为空