Pregunta

Soy información de minería de datos de un sitio web, y una de las cosas que debo hacer es cambiar una información de lo que la página me da en otra información y convertir esa segunda información en una variable. Sin embargo, simplemente no puedo encontrar una manera de hacer esto.

Dada la tabla a continuación:

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

... ¿Cómo puedo hacerlo así cuando lo hago?

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

... y coincide big, Puedo devolver el valor de tall ¿Pero convertirlo en una mesa? He intentado usar una función, que no funcionó, y no quiero hacer algo como t[adj]={} Porque no quiero hacer una subjuicios de t.

Siento que me está mirando directamente a la cara, pero estoy dibujando un espacio en blanco.

Editar para aclarar:

Sé cómo obtener el adjetivo que necesito, o cómo mostrar el valor para grande, etc. De lo que estoy hablando es la capacidad de hacer esto:

  1. Encuentre el valor basado en el adjetivo encontrado. En este caso, big fue encontrado, el valor es tall.
  2. Tome el valor encontrado (nuevamente, en este caso, tall) y convierte ese valor en su propia tabla. Entonces tendría la mesa desde arriba, y una nueva con la que no se ha poblado, llamado tall. De esa manera, después de llenarlo con información, puedo llamarlo por tall["somekeyvalue"]

¿Eso tiene un poco más de sentido ahora?

¿Fue útil?

Solución

Si no le molestan la variable global, puede usar la tabla de entornos globales.

Después de obtener su valor (por t [adj]), puede crear su tabla como esta:

_G[t[adj]] = {}

Podrá acceder a la mesa alto En todas partes

Otros consejos

Me parece que cuando coincide con un adjetivo, desea buscarlo en su mesa y devolver cualquier alias que tenga allí.

Para hacer eso en Lua, usarías [] Para buscar la mesa:

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

Si coincidía con "adjetivo: grande" en page, se imprimirá tall. ¿Es esto lo que quieres? La parte de "convertirlo en una mesa" es confuso para mí.

Dado que no sé cómo crear una variable dinámica en Lua, puedo sugerirle que cree una tabla que sea el contenedor de las otras tablas que cree para que pueda usarla por referencia como este "resultado. Sea una tabla con los elementos que le agrega.

Mira este ejemplo:

-- 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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top