Question

Je suis informations d'extraction de données à partir d'un site Web, et l'une des choses que je dois faire est de changer une information de ce que la page me donne dans une autre information, et transformer cette deuxième information dans une variable . Je ne peux pas trouver un moyen de le faire, cependant.

Compte tenu du tableau ci-dessous:

t = {big = "tall", little = "short", fat = "wide", skinny = "thin"}

... Comment puis-je faire quand je fais:

adj = string.match(page,'Adjective: (%w+)')

... et il correspond big, je peux retourner la valeur de tall mais la transformer en une table? Je l'ai essayé d'utiliser une fonction, ce qui n'a pas fonctionné, et je ne suis pas vouloir faire quelque chose comme t[adj]={} parce que je ne suis pas vouloir faire une sous-table de t.

Je me sens comme ça me regardant droit dans les yeux, mais je dessine un blanc.

Modifier des précisions:

Je sais comment obtenir l'adjectif que j'ai besoin, ou comment montrer la valeur pour les grands, etc. Ce dont je parle est de la capacité de le faire:

  1. Trouver la valeur basée sur l'adjectif trouvé. Dans ce cas, big a été trouvé, la valeur est tall.
  2. Prendre la valeur trouvée (encore une fois, dans ce cas, tall) et tourner cette valeur dans sa propre table. Ensuite, j'ai la table d'en haut, et un nouveau qui n'a pas été peuplée, appelée tall. De cette façon, après que je le remplir avec des informations, je peux l'appeler par tall["somekeyvalue"]

Est-ce que faire un peu plus de sens maintenant?

Était-ce utile?

La solution

Si vous n'êtes pas pris la peine avec la variable globale, vous pouvez utiliser la table globale environement.

Après avoir obtenu votre valeur (par t [adj]), vous pouvez créer votre table comme ceci:

_G[t[adj]] = {}

Vous pourrez ensuite accéder à la table haut partout

Autres conseils

Il me semble que lorsque vous correspondez un adjectif, vous voulez chercher dans votre table et retour tout alias que vous avez là-dedans.

Pour faire en Lua, vous utiliseriez [] pour rechercher la table:

t = {big = "tall", little = "short", fat = "wide", skinny = "thin"}
adj = string.match(page,'Adjective: (%w+)')
print(t[adj])

Si elle correspondait « Adjectif: grand » dans page, il imprimera tall. c'est ce que tu veux? La partie de « transformer en une table » est de me prêter à confusion.

Depuis que je ne sais pas comment créer une variable dynamique dans Lua Je vous suggère de créer une table qui sera le conteneur des autres tables vous créez afin que vous puissiez l'utiliser en référence comme celui-ci « result.tall » et ce sera une table avec les éléments que vous ajoutez.

Consultez cet exemple:

-- you have to initialize it
result = {}
result.tall = {}
result.little = {}

--insert the elements that can be another tables or not
table.insert (result.tall, 'enormous')
table.insert (result.little , {s = 'short'})

-- so you can access it later
for k,v in pairs(result.tall) do
    print(k,v)
end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top