我是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?
答案 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};
}