Lua:删除重复元素 [英] Lua : remove duplicate elements

查看:39
本文介绍了Lua:删除重复元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 lua 中有一张桌子

<前>测试 = {1,2,4,2,3,4,2,3,4,"A", "B", "A"}

我想删除表格中的所有重复元素.
输出应该是

<前>测试 = {1,2,4,3,"A","B"}

我的尝试:

<前>> 项目 = {1,2,4,2,3,4,2,3,4,"A", "B", "A"}> 标志 = {}> 对于 i=1,table.getn(items) 做如果不是 flags[items[i]] 那么io.write(' ' .. items[i])标志[items[i]] = true结尾>> 结束1 2 4 3 A B>

它现在工作正常.感谢您的回答和评论.

解决方案

与@Dimitry 给出的示例类似,但只有一个循环

local test = {1,2,4,2,3,4,2,3,4,"A", "B", "A"}本地哈希 = {}本地资源 = {}对于 ipairs(test) 中的 _,v 做如果(不是哈希[v])那么res[#res+1] = v -- 如果需要,您可以在此处打印而不是保存到结果表哈希 [v] = 真结尾结尾

i am having a table in lua

test = {1,2,4,2,3,4,2,3,4,"A", "B", "A"}

I want to remove all duplicate elements in table.
Output should be

test = {1,2,4,3,"A","B"}

EDIT:

My try :

> items = {1,2,4,2,3,4,2,3,4,"A", "B", "A"}
> flags = {}
> for i=1,table.getn(items)  do
if not flags[items[i]] then
      io.write(' ' .. items[i])
      flags[items[i]] = true
   end
>> end
 1 2 4 3 A B>

It is working fine now. Thanks for answers and comments.

解决方案

Similar to example given by @Dimitry but only one loop

local test = {1,2,4,2,3,4,2,3,4,"A", "B", "A"}
local hash = {}
local res = {}

for _,v in ipairs(test) do
   if (not hash[v]) then
       res[#res+1] = v -- you could print here instead of saving to result table if you wanted
       hash[v] = true
   end

end

这篇关于Lua:删除重复元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆