我是来自网站的数据挖掘信息,我必须做的一件事就是将一条信息从页面提供给我的信息转换为另一条信息,并将第二条信息转换为变量。然而,我根本想不出办法做到这一点。
见下表:
t = {big = "tall", little = "short", fat = "wide", skinny = "thin"}
......当我这样做时,我怎么能这样做:
adj = string.match(page,'Adjective: (%w+)')
...它匹配big
,我可以返回tall
的值,但将其转换为表格?我尝试过使用一个不起作用的函数,我不想做t[adj]={}
之类的事情,因为我不想创建t
的子表。
我觉得它正盯着我,但我正在画一个空白。
编辑以澄清:
我知道如何获得我需要的形容词,或者如何显示大的价值等等。我所说的是能够做到这一点:
big
,值为tall
。tall
)并将该值转换为自己的表。然后,我将拥有上面的表格,以及一个尚未填充的新表格,名为tall
。这样,在我用信息填充之后,我可以通过tall["somekeyvalue"]
现在这样做有点意义吗?
答案 0 :(得分:1)
听起来,当你匹配一个形容词时,你想在你的桌子上查找并返回你在那里的任何别名。
要在lua中执行此操作,您可以使用[]
查找表格:
t = {big = "tall", little = "short", fat = "wide", skinny = "thin"}
adj = string.match(page,'Adjective: (%w+)')
print(t[adj])
如果它与page
中的“形容词:大”匹配,则会打印tall
。这是你想要的吗?关于“把它变成桌子”的部分让我感到困惑。
答案 1 :(得分:1)
如果您没有受到全局变量的困扰,可以使用全局环境表。
获得你的价值(通过t [adj])后,你可以像这样创建你的表:
_G[t[adj]] = {}
然后,您就可以访问 tall 到处
的表格答案 2 :(得分:0)
由于我不知道如何在Lua中创建动态变量,我可以建议您创建一个表,它将是您创建的其他表的容器,因此您可以通过引用使用它,如“result.tall”这将是一个包含您添加到其中的元素的表。
看看这个例子:
-- 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