lua - 基于另一个计数值,遍历嵌套表 - LUA
问题描述
我还在学习 lua,pair 功能很棒,但我显然不知道如何正确使用它:
我正在尝试根据第一个值而不是键来计算嵌套表中值的总数。
我有一张桌子:
arr = {}
arr[100] = {1, "alpha", 4}
arr[10740] = {1, "bravo", 6}
arr[26104] = {2, "charlie", 7}
arr[150] = {3, "delta", 1}
arr[1006] = {2, "echo", 0}
arr[91002] = {1, "foxtrot", 2}
- k 是一个随机属性 - 对一个键来说很奇怪,但我必须这样
- v[1] 是组 ID,
- v[2] 是组名,
- v[3] 是组中的数字
现在我可以使用 pair 函数来计算表中 v[3] 的总数:
count = 0
for k, v in pairs(arr) do
count = count + v[3]
end;
print count
我需要做的是计算按 v[1] 分组的 v[3] 的总数。在他的表中 v[1] 是 1-16 的固定数字,但它们的数量可以不同。
但需要类似的结果:
- 第 1 组 = 12
- 第 2 组 = 7
- 第 3 组 = 1
我可以通过创建单独的表来实现它,取出第 1 组中的所有值,然后使用上述方法 - 但我觉得必须有更好的方法。
提前谢谢了。
解决方案
您走对了,您需要额外的表格来存储每组的计数:
local group_count = {}
for k, v in pairs(arr) do
group_count[v[1]] = (group_count[v[1]] or 0) + v[3]
end
-- not sorted output
for k, v in pairs(group_count) do
print('Group '..k..' = '..v)
end
推荐阅读
- android - 为未出现在 Android 7 中的应用选择默认启动器
- python - 使用 node.js、express 和 python 从 csv 渲染 html 表
- javascript - 对象中浮点数的总和。(打字稿)
- jquery - 为使用.eq 选择的li 内的图像设置src?
- javascript - 使用 Storybook js 未找到规则“@typescript-eslint/no-implicit-any”的定义
- javascript - 使用 React 钩子更改页面(重置自身)
- python - Python gdb 支持 - /path/to/checkout
- python - 练习调用可能定义或未定义的对象
- python - PIP 无法安装 auto-py-to-exe
- spring-boot - GraphQL + Spring Boot:如何收集(错误)指标?