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

时间:2013-11-14 06:02:44

标签: lua lua-table

我有一张桌子,我正在传递名字:

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

在其他表格中我传递的是国家名称:

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

我想输出表格如下:

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

这是一次直接的尝试:

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)

Live repl demo