【问题标题】:Lua, Tables: merge values of duplicate keys and remove duplicatesLua,Tables:合并重复键的值并删除重复项
【发布时间】:2013-04-23 02:52:39
【问题描述】:

我最近开始在 lua 上摆弄很多东西,但我一辈子都想不通。

假设我有一个如下所示的字符串:

s = "a=x a=y b=z a=x"

我想删除所有重复项并将重复键的值合并到一个表中,这样我得到:

t = {
a = {x,y},
b = {z},
}

我一直在思考这个问题太久了。任何帮助表示赞赏!

【问题讨论】:

    标签: lua lua-table


    【解决方案1】:

    试试这个:

    s="a=x a=y b=z a=x"
    
    s=s.." "
    t={}
    for k,v in s:gmatch("(.-)=(.-)%s+") do
            if t[k]==nil then t[k]={} end
            t[k][v]=true
    end
    
    for k,v in pairs(t) do
            for z in pairs(v) do print(k,z) end
    end
    

    【讨论】:

    • 你让它看起来如此简单。它似乎做了我想让它做的事情——现在我将尝试分解它以获得更好的理解。非常感谢!
    • 快速问题:(我已经搜索过)我将如何从这个表中打印一个嵌套值。例如,print(t.a[1]) 不起作用。
    • @Easypeasy,这正是for z in pairs(v) do print(k,z) end 所做的。
    猜你喜欢
    • 1970-01-01
    • 2018-03-11
    • 2016-10-24
    • 2013-05-02
    • 2011-01-09
    • 2019-06-25
    • 2015-01-01
    • 2015-11-29
    相关资源
    最近更新 更多