简化代码产生类似aggregate的作用

请问大家有没有办法把下面的代码简化一下,目标是类似于aggregate,在一个字符串数列中,统计相同的字符数量

c = split("a"^80,"")
d = split("b"^5, "")
f = append!(c,d)
let ti = [];
    t = union(f)
    for i in t
        tj=[]
        for j in 1:length(f)
            tj = push!(tj, i == f[j])
        end
        ti = push!(ti,sum(tj))
    end
    ti
end
julia> codeunits("a"^80*"b"^5) |> unique
2-element Array{UInt8,1}:
 0x61
 0x62

julia> codeunits("a"^80*"b"^5) |> x->[count(i->i==j, x) for j in unique(x)]
2-element Array{Int64,1}:
 80
  5

简洁但很慢,可以魔改一下unique,让它输出计数

1 个赞

谢谢,这个非常有效,有点看不懂了

s = split(string("a"^20,"b"^3,"c"^2),"")
s |> x->[count(i->i==j, x) for j in unique(x)]

这个|>是pipe的意思么?
后面这个 x->[count(i->i==j, x) for j in unique(x)]看到这个关系一下就懵比了,

最后还是看懂了,非常巧妙!!