有两个table,如何计算两个table里面的值,然后合并两个表,如图
lua吧
全部回复
仅看楼主
level 5
cenzuoming168 楼主
2018年10月17日 06点10分 1
level 1
table1 = {{"小鱼",1},{"熊猫",2},{"大象",1},{"老虎",1}}
table2 = {{"小鱼",2},{"老虎",5}}
for _,a in pairs(table1) do
for _,b in pairs(table2) do
if a[1] == b[1] then
a[2] = a[2] + b[2]
end
end
end
for _,v in pairs(table1) do
for _,j in pairs(v) do
print(j)
end
end
运行结果:
小鱼
3
熊猫
2
大象
1
老虎
6
==这样写不是很严谨,因为如果表2出现表1没有的动物,就不会加进去
修改后的写法
table1 = {{"小鱼",1},{"熊猫",2},{"大象",1},{"老虎",1}}
table2 = {{"小鱼",2},{"老虎",5},{"老蛇",3},{"老猪",4}}
for _,a in pairs(table1) do
for i,b in pairs(table2) do
if a[1] == b[1] then
a[2] = a[2] + b[2]
table2[i] = nil
end
end
end
if table2 ~= nil then
for i = 1,#table2 do
table1[#table1+i] = table2[i]
end
end
for _,v in pairs(table1) do
for _,j in pairs(v) do
print(j)
end
end
运行结果
小鱼
3
熊猫
2
大象
1
老虎
6
老蛇
3
老猪
4
这么写也不算严谨,因为如果表一或表二有重复的动物就会有错误,再换一种思路,就是先把两张表合并,再处理重复数据
2018年12月15日 19点12分 2
level 1
table1 = {{"小鱼",1},{"熊猫",2},{"大象",1},{"老虎",1},{"小鱼",5}}
table2 = {{"小鱼",2},{"老虎",5},{"老蛇",3},{"老猪",4},{"老虎",2}}
table3 = {}
table4 = {}
--将表一二合并到表一
for i=1,#table2 do
table1[#table1+i] = table2[i]
end
--处理重复名字
for _,a in pairs(table1) do
local str = a[1]
table3[str] = 0
end
--将数据以映射的方式写到表三
for _,a in pairs(table1) do
local str = a[1]
for b,_ in pairs (table3) do
if str == b then
table3[b] = table3[b] + a[2]
end
end
end
--按一二的格式刷到表四
for i,v in pairs (table3) do
table4[#table4+1] = {i,v}
end
for _,v in pairs(table4) do
for _,j in pairs(v) do
print(j)
end
end
输出结果:
熊猫
2
老猪
4
小鱼
8
老蛇
3
老虎
8
大象
1
2018年12月15日 20点12分 3
level 5
cenzuoming168 楼主
2019年01月08日 07点01分 4
1