2016-11-30 1 views
1

Je suis nouveau à lua et que vous souhaitez en apprendre davantage sur table imbriquéeComment lire le tableau imbriqué

C'est ce que j'ai essayé:

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 

Cela ne fonctionne pas pour moi. Ceci est le résultat que je veux: Exemple:

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? 

Répondre

1

Je crois que le malentendu réside dans ce code:

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

La valeur 2, celle d'après la virgule, {1, 22, 3} est assignée à rien, il est lâché dans l'éther.

Peut-être ce que vous vouliez dire était une table de tables:

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

Cela créerait une entrée à [1] dans t qui est itself..a tableau t[1][1] == 22 t[1][2] == {1, 22, 3}

ensuite itérer cette configuration que vous pouvez utiliser:

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

Mais pour être honnête, je ne suis pas sûr de ce que vous demandez car votre "sortie attendue" est significativement différente de votre échantillon de données.

+0

Merci pour la réponse rapide. Je pense que je veux dire que c'est assez avec: t [1] = {22, 3} t [2] = {44, 6} t [3] = {66, 63} Comment itérer sur cette table dans le plus simple peut-être moyen? – Qualmos

0

En réponse au commentaire de Qualmos dans la réponse de 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 

imprimerait quelque chose comme ceci:

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

BTW, vous pouvez faire le look de table comme ceci:

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

Salut merci. Je suis très content. – Qualmos