统计lua中 "for循环 "或 "while循环 "中某些变量的出现次数,并确定其索引。

我试图计算出某个变量在for或while循环中出现的次数,然后将它们与正确的索引(i)绑定。我将用字母来举例说明我所做的尝试。

例如:”Letterlist(index) “在每个索引上都包含a-z的随机字母。我想看看字母b在循环中出现了多少次。

for i = 1, 10 do
  B_LetterCount = 0
  letter = Letterlist(i)
  if letter == b then
    B_LetterID = i
    B_LetterCount = B_LetterCount + 1
  end
end

你可能已经知道了,这个循环是行不通的,因为字母b的最近一次出现会覆盖其他任何一次出现的id。例如if。

1 = a
2 = b
3 = h
4 = b
5 = y
6 = t
7 = a
8 = b
9 = e
10 = k

那么b就会出现在索引2, 4和8上. 有没有一种方法可以对它们进行计数,并为它们设置一个ID变量,就像我的例子循环中所示。B_LetterID = i, B_LetterID2 = i,以此类推。 任何帮助将是非常感激的。

解决方案:

我让你根据自己的需要来修改代码。你应该明白了。

local list = {"a", "b", "h", "b", "y", "t", "a", "b", "e", "k"}

local indices = {}
local counts = {}
for i,v in ipairs(list) do
  indices[v] = indices[v] or {}
  table.insert(indices[v], i)
  counts[v] = counts[v] and (counts[v] + 1) or 1
end

for k,v in pairs(counts) do
  print(string.format("%d %q at:", v, k)) 
  print(table.unpack(indices[k]))
end

给TA打赏
共{{data.count}}人
人已打赏
未分类

禁用CUDA编译器驱动程序的二进制缓存

2022-9-8 21:27:42

未分类

如何生成`c('q01','q02','q03','q04',...'q99')`?[重复]

2022-9-8 21:38:36

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索