加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

红宝石:如何在数组中找到非唯一的元素并打印每个元素的数量?

发布时间:2020-12-16 19:59:01 所属栏目:百科 来源:网络整理
导读:我有 a = ["a","d","c","b","c"] 并需要打印类似的东西(按出现次数排序) c:3b:2 我明白第一部分(发现非唯一)是: b = a.select{ |e| a.count(e) 1 }= ["c","c"] 要么 puts b.select{|e,c| [e,a.count(e)] }.uniqcb 如何输出每一个非唯一的数量排序次数? 解
我有
a = ["a","d","c","b","c"]

并需要打印类似的东西(按出现次数排序)

c:3
b:2

我明白第一部分(发现非唯一)是:

b = a.select{ |e| a.count(e) > 1 }
=> ["c","c"]

要么

puts b.select{|e,c| [e,a.count(e)] }.uniq

c
b

如何输出每一个非唯一的数量排序次数?

解决方法

puts a.uniq.
       map { | e | [a.count(e),e] }.
       select { | c,_ | c > 1 }.
       sort.reverse.
       map { | c,e | "#{e}:#{c}" }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读