当前位置: 首页 > 知识库问答 >
问题:

为什么这不计算每一行打印?

叶琦
2023-03-14

我已经把一些代码放在一起,对人们的考试成绩进行排序,这样他们就可以看到他们的最高成绩是什么,以及他们什么时候达到的。我创建了以下代码,但它没有显示1、2、3等计数器,我缺少什么?

local tt ={}

local verbalreasoning = {
    { test=1, name="Ben", res=12, testdate="June 20" },
    { test=2, name="Ben", res=12, testdate="June 21" },
    { test=3, name="Ben", res=12, testdate="June 22" },
    { test=4, name="Ben", res=14, testdate="June 23" },
    { test=5, name="Ben", res=12, testdate="June 24" },
    { test=6, name="Ben", res=17, testdate="June 25" },
    { test=7, name="Ben", res=16, testdate="June 26" },
    { test=8, name="Ben", res=12, testdate="June 27" }
}

for _, v in ipairs(verbalreasoning) do
    table.insert(tt, { myres=v.res, myname=v.name, mydate=v.testdate })
    end

table.sort(tt, function(a,b) return a.myres > b.myres end) -- sort highest to lowest

local count = 0
local increment = 1

for _,v in pairs(tt) do
    local count = count + increment
print(count, v.myres, v.myname, v.testdate)
end

它打印以下内容,所有内容都显示1,而它应该是1、2、3等。

1     17     Ben     
1     16     Ben     
1     14     Ben     
1     12     Ben     
1     12     Ben     
1     12     Ben     
1     12     Ben     
1     12     Ben     

共有1个答案

弓宏茂
2023-03-14

不要在for循环中使用local
因为您在每次迭代中都将其声明为新的
。。。这将从声明的外部循环local count
变成0,而在循环中不使用local,您可以更改并迭代声明的外部local变量
。。。从而在循环中得到一个迭代的计数。

 类似资料:
  • 公共静态无效字(字符串文本){int numWords=1; 字符串“是this_one_long_word还是几个???你觉得怎么样??太多“应该打印10个字和”!这使用periods.as.word.delimiters,可能很棘手。“应该打印10个单词。 描述如下:一个单词是由一个或多个字符组成的序列,由空格或句子终止符(句号、冒号、分号、问号、感叹号)分隔,无论它是否为实际的英语单词。空白

  • (英语不是我的第一语言,所以请原谅任何错误) 我使用SparkSQL从hive表中读取4.7TB的数据,并执行计数操作。做那件事大约需要1.6小时。而直接从HDFS txt文件读取和执行计数,只需要10分钟。这两个作业使用相同的资源和并行性。为什么RDD计数需要这么多时间? 配置单元表大约有30万列,序列化可能代价高昂。我检查了spark UI,每个任务读取大约240MB的数据,执行大约需要3.6

  • 它以年为单位正确地显示了图表。但年末的存款金额(a)保持不变(1000); 直到利率达到10%。

  • 不理解以前的打包编译为什么要这么设计 这是一段webpack1打包后的代码: 我知道(a, b, c)这个语句会返回最后一个元素 但是我不明白为何要采用(0, _index.function)()的形式去调用引入的函数 而不是直接_index.function() 或许是有什么历史原因吗?

  • 问题内容: 下面是分别用和编码的简单过程(对于那些对此过程感到好奇的人,这是针对Euler项目5号问题的解决方案)。 我的问题是,下面的代码仅需9秒即可迭代,而代码完成则需要283秒(确切地说,在Python 3.4.3-64位上为283秒,在Python 2.7.9-32位上为329秒)。 到目前为止,我已经编码的两种类似的过程和与执行时间的差异,具有可比性。但是,这次,经过的时间之间存在极大的

  • 问题内容: 我有一个有趣的查询需要做。我有一张表,其中有一列包含ip地址编号(使用)和一列。我希望能够计算每天有唯一IP地址列的数量。也就是说,每天有多少个不同的ip行。因此,例如,如果一个IP地址在同一天两次,则在最终计数中将计为1;但是,如果同一IP地址在另一天,则将被计算为第二个计数。 示例数据: 问题答案: SQLFiddle演示