【问题标题】:Lua: Compare dictionary values and return matching keys & shared valueLua:比较字典值并返回匹配键和共享值
【发布时间】:2014-09-17 00:07:21
【问题描述】:

我创建了一个包含名称和 IP 地址信息的键值对字典,我需要查找具有重复 IP 的名称并返回与它们的 IP 地址信息(值)匹配的名称(键)分享。

字典“t”将包括:

亚当,192.168.1.1

鲍勃,192.168.1.2

克莱尔,192.168.1.2

deb,192.168.1.3

埃德加,192.168.1.1

我需要找到重复项并按照以下方式返回结果:

adam 和 edgar 都在使用 192.168.1.1

bob 和 claire 都在使用 192.168.1.2

我不确定如何按名称遍历字典键。当我最初提出这个问题时,我提供了一个代码示例(不工作),我试图通过索引位置来做到这一点。我已经删除了它,并对建议持开放态度。谢谢。

【问题讨论】:

  • 我不认为你建立的桌子是你需要的。尝试打印t的内容。
  • 删除了我的坏表插入代码。这分散了我实际上试图问的问题的注意力。谢谢大家!

标签: dictionary lua compare


【解决方案1】:

试试这个:

t={
    ["adam"]= "192.168.1.1",
    ["bob"]= "192.168.1.2",
    ["claire"]= "192.168.1.2",
    ["deb"]= "192.168.1.3",
    ["edgar"]= "192.168.1.1",
}

local d={}
for k,v in pairs(t) do
    if d[v]~=nil then
        io.write(k," and ",d[v]," are both using ",v,"\n")
    else
        d[v]=k
    end
end

【讨论】:

  • 甜蜜!谢谢你:)第一次在控制台中不起作用,但是当我从“local d = {}”中删除本地时它就起作用了
  • @fbonds66,不用在控制台试试,也可以在Lua live demo试试。
猜你喜欢
  • 2018-10-24
  • 1970-01-01
  • 1970-01-01
  • 2020-12-23
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-03
相关资源
最近更新 更多