2016-11-30 55 views
1

我是新來的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? 

回答

1

我相信誤會就在於此代碼:

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

第二個數值,逗號後的一個,{1, 22, 3}被分配什麼也沒有,它被扔在了乙醚裏。

你的意思也許是什麼表的表:

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

這將在t是itself..a表 t[1][1] == 22 t[1][2] == {1, 22, 3}

然後遍歷建立在[1]的項您可以使用此設置:

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

但說實話,我不確定你所要求的是什麼,因爲你的「預期產出」與你的樣本數據集顯着不同。

+0

感謝您的快速回答。我認爲我的意思是它足夠:t [1] = {22,3} t [2] = {44,6} t [3] = {66,63}如何在最簡單可能的方式? – Qualmos

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}; 
} 
+0

嘿謝謝。我很高興。 – Qualmos