如何阅读嵌套表

时间:2016-11-30 22:03:07

标签: lua nested lua-table

我是lua的新手,想了解嵌套表

这就是我一直在尝试的:

t = {};
t[1] = 22, {1, 22, 3};
t[2] = 44, {4, 5, 6}; 
t[3] = 66, {4, 5, 6};

for k, v in ipairs(t) do 
print(k,v) 
end

这对我不起作用。    这是我想要的结果:         例如:

    1 2 5
   2 5 66
   3 6 33
    4 2 1
    5 4 12
   6 4 3
    7 2 44
    8 3 1
    9 2 44
   10 3 99


How do I read a nested table like this and
how do I table.insert in the right column?

2 个答案:

答案 0 :(得分:1)

我认为误解在于这段代码:

t[1] = 22, {1, 22, 3}

第二个值,逗号之后的那个,{1, 22, 3}被分配给任何东西,它被丢弃在以太中。

也许你的意思是桌子表:

t[1] = {22, {1, 22, 3}}

这将在t中的[1]处创建一个条目,该条目本身就是一个表格 t[1][1] == 22 t[1][2] == {1, 22, 3}

然后迭代这个设置你可以使用:

local t = {} t[1] = {22, {1, 22, 3}} t[2] = {44, {4, 5, 6}} t[3] = {66, {4, 5, 6}} for _,entry in ipairs(t) do local key = entry[1] io.write(key .. ' ') for _,value in ipairs(entry[2]) do io.write(value .. ' ') end io.write('\n') end

但说实话,我不确定你要求什么作为你预期的输出"与您的样本数据集明显不同。

答案 1 :(得分:0)

回复Qualmos'在payo的回答中发表评论:

local t = {}
t[1] = {22,3}
t[2] = {44,6}
t[3] = {66,63}

for _,v in pairs(table) do
   print(_,v[1],v[2])
end

会打印出这样的内容:

1,22,3
2,44,6
3,66,63

顺便说一下,你可以让表格看起来像这样:

local t = {
    {22,3};
    {44,6};
    {66,63};
}