创建一个表,将两个输入表合并。输出表的键来自于第一个输入表,值来自于第二个输入表。

我有一个表格,其中我传递了姓名:

names = {'Sachin', 'Ponting', 'Dhoni'}

在另一个表格中,我传递了国家名称:

country = {"India", "Australia", "India"}

我想要输出如下的表格:

out_table = {Sachin="India", Ponting="Australia", Dhoni="India"}

点赞
用户1009479
用户1009479

你可以创建一个新的迭代器,从两个序列中获取值:

function both_values(t1, t2)
    local i = 0
    return function() i = i + 1; return t1[i], t2[i] end
end

然后使用迭代器:

local out_table = {}
for v1, v2 in both_values(names, country) do
    out_table[v1] = v2
end
2013-11-14 06:13:35
用户234175
用户234175

以下是一个直截了当的尝试:

names = {'Sachin', 'Ponting', 'Dhoni'}
countries = {"India", "Australia", "India"}

function table_map(names, countries)
    local out = {}
    for i, each in ipairs(names) do
        out[each] = countries[i]
    end
    return out
end

out_table = table_map(names, countries)

在线演示

2013-11-14 06:36:00