Frage

Ich bin Data-Mining-Informationen von einer Website, und eines der Dinge, die ich tun muss, ist eine Informationen aus dem, was mir die Seite in eine andere Information gibt, und diese zweite Informationen in eine Variable verwandeln. Ich kann jedoch einfach keinen Weg finden, dies zu tun.

Angesichts der folgenden Tabelle:

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

... wie kann ich es so machen, wenn ich es tue:

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

... und es passt zu big, Ich kann den Wert von zurückgeben tall Aber verwandeln Sie es in einen Tisch? Ich habe versucht, eine Funktion zu verwenden, die nicht funktioniert hat, und ich möchte nicht so etwas wie t[adj]={} Weil ich nicht einen Untertisch machen möchte t.

Ich habe das Gefühl, dass es mich direkt ins Gesicht starrt, aber ich zeichne einen Leerzeichen.

Zur Klärung bearbeiten:

Ich weiß, wie man das Adjektiv bekommt, das ich brauche, oder wie man den Wert für Big usw. zeigt. Was ich spreche, ist die Fähigkeit, dies zu tun:

  1. Finden Sie den Wert basierend auf dem gefundenen Adjektiv. In diesem Fall, big wurde gefunden, der Wert ist tall.
  2. Nehmen Sie den gefundenen Wert (in diesem Fall erneut, tall) und verwandeln Sie diesen Wert in seine eigene Tabelle. Dann hätte ich die Tabelle von oben und eine neue, die nicht bevölkert wurde, genannt tall. Auf diese Weise kann ich es nach der Fülle mit Informationen anrufen tall["somekeyvalue"]

Macht das jetzt ein bisschen sinnvoller?

War es hilfreich?

Lösung

Wenn Sie sich nicht um globale Variable kümmern, können Sie die globale Umgebungstabelle verwenden.

Nachdem Sie Ihren Wert erhalten haben (von t [adj]), können Sie Ihre Tabelle wie folgt erstellen:

_G[t[adj]] = {}

Sie können dann auf den Tisch zugreifen hoch überall, überallhin, allerorts

Andere Tipps

Es klingt für mich, dass Sie, wenn Sie mit einem Adjektiv übereinstimmen, es in Ihrem Tisch nachschlagen und den Alias, den Sie dort haben, zurückgeben möchten.

Um dies in Lua zu tun, würden Sie verwenden [] Um den Tisch nachzuschlagen:

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

Wenn es "Adjektiv: Big" in entsprach page, es wird drucken tall. Ist das was du willst? Der Teil über "In einen Tisch verwandeln" ist für mich verwirrend.

Da ich nicht weiß, wie ich eine dynamische Variable in lUA erstellen kann, kann ich Ihnen vorschlagen Seien Sie eine Tabelle mit den Elementen, die Sie ihm hinzufügen.

Schauen Sie sich dieses Beispiel an:

-- 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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top