ruby - 比较 RUBY 中数组的键
问题描述
我有这个结构:
$ArrayX = [8349310431,8349314513,......]
$ArrayY = [667984788,667987788,......]
$ArrayZ = [148507632380,153294624079,.....]
$range_map = $ArrayX.zip([$ArrayY.map(&:to_i),
$ArrayZ.map(&:to_i)].transpose).sort
puts $range_map ={[8349310431=>[667984788, 148507632380],
8349314513=>[667987788, 153294624079]}
我需要将密钥与其余密钥进行比较,如果密钥之间的减法低于 100,则打印该密钥
解决方案
我还根据您的需要更正了您的代码,并进一步解决了,
$ArrayX = [8349310431,8349314513]
$ArrayY = [667984788,667987788]
$ArrayZ = [148507632380,153294624079]
$range_map = $ArrayX.zip([$ArrayY.map(&:to_i), $ArrayZ.map(&:to_i)].transpose).sort
$ArrayX = [8349310431,8349314513]
=> [8349310431, 8349314513]
$ArrayY = [667984788,667987788]
=> [667984788, 667987788]
$ArrayZ = [148507632380,153294624079]
=> [148507632380, 153294624079]
$range_map = Hash[$ArrayX.zip([$ArrayY.map(&:to_i), $ArrayZ.map(&:to_i)].transpose).sort]
=> {8349310431=>[667984788, 148507632380], 8349314513=>[667987788, 153294624079]}
keys = $range_map.keys
valid_keys = keys.select { |k| keys.detect { |x| (x-k).abs > 100 } }
$range_map.slice(*valid_keys)
如果特定键与其余键之一的差异超过 100,则它将对过滤有效。
推荐阅读
- php - Enlist active 提交 0 而不是 1 和 1 而不是 0 但仍然给出正确的 Flash Success
- android - 如何在用户使用我的应用程序时禁用使用 NFC 打开浏览器?
- r - 在 Shiny 中使用 igraph 对象刷亮选项
- c++ - 我非常困惑,在 for 循环之外,一个值可能是一回事,但在里面却是另一回事?
- javascript - 如何在node.js中将数组作为参数传递给jar exec
- python - 如何在 Python 3 中从反斜杠符号中拆分反斜杠
- postgresql - 是否可以在 centos 上将 Postgresql 从版本 9.2 更新到 10
- html - 完全新手!非常迷失如何通过烧瓶发送 json 数据以显示在 HTML 网页上?
- javascript - 使用 ngx-datatable 在 Angular 中实现 ElasticSearch 滚动 ID?
- java - 如何在模型中包含列表?