gpt4 book ai didi

lua - 将元素的频率计入Lua中的数组

转载 作者:行者123 更新时间:2023-12-04 02:40:50 27 4
gpt4 key购买 nike

我在 Lua 中有一张表:

p = {'sachin', 'sachin', 'dravid', 'Dhoni', 'yuvraj', 'kohli'}

我想统计表中每个名字出现的频率。

test1 = {sachin=2, dravid=1, Dhoni=1, yuvraj=1, kohli=1}

我用很多for循环试过这个程序。请看我的代码

> function exec(ele,p)count = 0for k,v in pairs(p) doif ele == p[k] thencount = count +1 endendreturn countend> new_table = {}> for k,v in pairs(p) donew_table[v] = exec(v,p)end> > for k,v in pairs(new_table) doprint(k,v)enddhone   1yuvraj  1kohli   1sachin  2dravid  1

我想以更高效的方式进行。我怎样才能做到这一点?

最佳答案

你可以这样计算频率:

function tally(t)
local freq = {}
for _, v in ipairs(t) do
freq[v] = (freq[v] or 0) + 1
end
return freq
end

这是另一个 demo example .

关于lua - 将元素的频率计入Lua中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19976322/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com