Lua:如果表中不存在,则最聪明地添加到表中,或删除重复项的最佳方法
2011-7-8 0:56:53
收藏:0
阅读:157
评论:3
我有一个字符串表格。我想要一种简单的方法来删除表格中所有重复的字符串。
因此,如果表格是{a, b, c, c, d, e, e}
,执行此操作后,它应该是{a, b, c, d, e}
。
或者,更好的是,有一种方法可以将元素添加到表格中,但仅当表格中没有包含该元素时才添加。
<\noobquestion>
原文链接 https://stackoverflow.com/questions/6618843
点赞
stackoverflow用户438753
通常我会按字符串对表进行索引,例如:
tbl[mystring1] = 1
tbl[mystring2] = 1
等等。
当你添加字符串时,只需使用上面的代码,重复的会自动处理。然后可以使用 for ... pairs do 循环来读取数据。
如果你想计算出现次数,可以使用如下代码:
if tbl[mystring1] == nil then
tbl[mystring1] = 1
else
tbl[mystring1] = tbl[mystring1] + 1
end
添加完毕之后,如果需要将表格翻转,可以简单地使用:
newtbl = {}
for s,c in pairs(tbl) do
table.insert(newtbl,s)
end
2011-07-08 06:55:01
stackoverflow用户312586
最简单的方法是将表作为键,而不是作为值,在“容器表”中使用它们。
我们将容器表称为values
。您可能目前正在执行类似于以下内容以将元素添加到其中:
table.insert(values, value)
并且您会像这样解析values
:
for i,v in ipairs(values) do
-- v包含内部值
end
为了仅使用表一次,您可以以另一种方式插入它们:
values[value] = 1
这将确保已插入的值(字符串、表、数字等)仅包含一次,因为它们将被“覆盖”。
然后您可以像这样解析values
:
for k,_ in pairs(values) do
-- k包含内部表
end
2011-07-08 14:04:27
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
这似乎是你想要实现一个 Set,即一个独一无二元素的集合。这篇文章或许能对你有所帮助:http://www.lua.org/pil/13.1.html