You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Lua中展平(flattening)嵌套列表?

Lua 嵌套表展平实现方法

如果你需要把嵌套的Lua表展平成一维表,可以用递归函数处理,不管嵌套层级多少都能适用:

local function flatten(tbl)
    local result = {}
    for _, v in ipairs(tbl) do
        if type(v) == "table" then
            -- 递归处理嵌套子表,合并结果到主表
            local flattened_sub = flatten(v)
            for _, val in ipairs(flattened_sub) do
                table.insert(result, val)
            end
        else
            -- 非表元素直接加入结果
            table.insert(result, v)
        end
    end
    return result
end

使用示例

针对你给出的输入表:

local nested_table = {{'text'}, {'something', 'string'}, {'thing'}}
local flattened_table = flatten(nested_table)
-- 最终结果:{'text', 'something', 'string', 'thing'}

如果确定你的嵌套表只有两层,也可以用更简洁的非递归写法,效率更高:

local function flatten_two_level(tbl)
    local result = {}
    for _, sub_tbl in ipairs(tbl) do
        for _, val in ipairs(sub_tbl) do
            table.insert(result, val)
        end
    end
    return result
end

内容的提问来源于stack exchange,提问作者kornelbut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 15:47:34