我有一个如下表:
mafiadb:{"Etzli":{"alive":50,"mafia":60,"vigilante":3,"doctor":4,"citizen":78,"police":40},"Charneus":{"alive":29,"mafia":42,"vigilante":6,"doctor":14,"citizen":53,"police":33}}
还有更多的嵌套表,但我现在只是想保持简单。
我运行以下代码来提取某些值(我正在根据这些值制作一个有序列表):
sortmaf={}
for k,v in pairs(mafiadb) do
sortmaf[k]=v["mafia"]
end
这是我运行的代码之一。我遇到的问题是您似乎无法在表格循环中进行算术运算。我试过:
sortpct={}
for k,v in pairs(mafiadb) do
sortpct[k]=(v["alive"]*100)/(v["mafia"]+v["vigilante"]+v["doctor"]+v["citizen"]+v["police"])
end
它返回我正在尝试对“活着”字段进行算术运算。我在这里想念什么?像往常一样,我很感激回答这个问题时的任何考虑!
编辑:我将在此处添加其他信息,而不是评论评论。
我发布的 mafiadb 数据库是真正的数据库。它只是精简为两名球员,而不是我在其中列出的当前 150 多名球员。它的结构很简单:
mafiadb = {
Playername = {
alive = 0
mafia = 0
vigilante = 0
doctor = 0
police = 0
citizen = 0
}
}
再添加几百个玩家名字,就可以了。
至于错误消息,确切的消息是:
尝试对字段“alive”(nil 值)执行算术运算
所以......我不确定问题是什么。在我的第一个代码中,带有 sortmaf 的代码,它工作得很好,但是突然间,当我尝试做算术时,它找不到 v["alive"] 作为值?如果我只是将 v["alive"] 单独放入,它会突然被发现并且不再为零。我希望这能澄清一点。