查看: 2425|回复: 5

[已经解决] 一个哈希表的运算问题。。

[复制链接]
梦石
0
星屑
724
在线时间
685 小时
注册时间
2009-5-29
回帖
332
发表于 2010-10-26 15:44:23 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 saturnfjh 于 2010-10-26 17:10 编辑

hash中如何将value相等的key取出形成一个array?
如hash={a=>x,b=>y,c=>z,d=>x}(x>y>z)
如何获得array=[a,d]?

点评

快去认可帖认可[url]http://bbs.66rpg.com/thread-155979-1-2.html[/url],愚者求分若渴  发表于 2010-10-26 17:27

旅之愚者

梦石
0
星屑
560
在线时间
814 小时
注册时间
2007-7-28
回帖
2121

贵宾

发表于 2010-10-26 16:01:19 | 显示全部楼层
本帖最后由 六祈 于 2010-10-26 16:08 编辑

如果是将value等于某值的key取出,可以这么写:
hash.keys.select{|key| hash[key] == x}

如果是要把重复值的键取出,那显然并不一定只有一个数组。

评分

参与人数 1星屑 +700 收起 理由
八云紫 + 700 认可答案

查看全部评分

回复

使用道具 举报

神隐的主犯

梦石
0
星屑
553
在线时间
271 小时
注册时间
2008-2-22
回帖
7534

贵宾

发表于 2010-10-26 16:01:29 | 显示全部楼层
本帖最后由 铃仙·优昙华院·因幡 于 2010-10-26 16:05 编辑

  1. def get_array(value)
  2.   cache = []
  3.   $hash.eachdo |key, val|
  4.      cache << key if val == value
  5.   end
  6.   return cache
  7. end

  8. def get_arrays
  9.   cache = []
  10.   $hash.values.uniq.each do |n|
  11.       cache << get_array(n)
  12.   end
  13. end
复制代码
渣方法~~

点评

OY,感谢各位- - 67师傅,奶茶师傅,还有铃仙姐姐= =  发表于 2010-10-26 17:10

评分

参与人数 1星屑 +300 收起 理由
八云紫 + 300 认可答案

查看全部评分


《天空之城 —— 破碎的命运》
回复

使用道具 举报

梦石
0
星屑
724
在线时间
685 小时
注册时间
2009-5-29
回帖
332
 楼主| 发表于 2010-10-26 16:26:25 | 显示全部楼层
如果是将value等于某值的key取出,可以这么写:
hash.keys.select{|key| hash[key] == x}

如果是要把重复 ...
六祈 发表于 2010-10-26 16:01

渣方法~~
铃仙·优昙华院·因幡 发表于 2010-10-26 16:01


话说这样,一个敌人有一个仇恨列表(hash={index=>hate_value}),现在要选择最高的仇恨
要是最高的仇恨同时有2个以上,那么就随机选择一个,这个要怎么写哦。。
回复

使用道具 举报

旅之愚者

梦石
0
星屑
560
在线时间
814 小时
注册时间
2007-7-28
回帖
2121

贵宾

发表于 2010-10-26 16:45:49 | 显示全部楼层
回复 saturnfjh 的帖子

果断在这里回帖刷分
  1. max_value = hash.values.sort[-1]
  2. keys_array = hash.keys.select{|key| hash[key] == max_value}
  3. random_key = keys_array[rand(keys_array.size)]
复制代码

点评

OY,感谢各位- - 67师傅,奶茶师傅,还有铃仙姐姐= =  发表于 2010-10-26 17:09
回复

使用道具 举报

铃铃塔的守护者

梦石
0
星屑
626
在线时间
961 小时
注册时间
2010-10-24
回帖
2677

贵宾

发表于 2010-10-26 22:29:10 | 显示全部楼层
哇咧,都是脚本高手的说,我只能看懂问题,正解吗...一个看不懂。
好好学习脚本吧,看来我的路还有好长..

魔法麻将独立游戏制作中,欢迎热情的测试员与UI设计师合作开发~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部