list - Lua - 如何识别一个列表中的任何值不存在于另一个列表中的位置

标签 list lua compare lua-table

尝试比较 2 个列表(表)并在新列表中存在但旧列表中不存在的任何值的情况下返回 true。正在努力做到这一点,感谢任何帮助!

必须返回 true 的示例:

Old = orange, apple, pear, mango
New = orange, apple, banana, pear

在本例中,“banana”位于新列表中,但不在旧列表中,因此代码必须返回 true。

注意: 如果旧列表中有一个值不在新列表中,我仍然想返回 false(只要所有新值都存在于旧列表中)列表)。

示例

Old = orange, apple, pear, mango
New = orange, apple, pear

在这种情况下,所有新值都在旧列表中,因此代码必须返回 false。 (我不在乎芒果在旧列表中但不在新列表中)

尝试了 ipairs 的不同变体,但到目前为止还没有成功。

最佳答案

您想要做的是比较集合。集合是一种数据结构,可让您轻松检查某个值是否是该集合的成员。它是一个非常强大的完整编程工具。

local old = {"orange", "apple", "pear", "mango"}
local new = {"orange", "apple", "pear", "banana"}

local old_set = {}
for _, v in pairs(old) do
    old_set[v] = true
end

for _, v in pairs(new) do
    print(v, old_set[v] ~= true)
end

输出

orange  false
apple   false
pear    false
banana  true

关于list - Lua - 如何识别一个列表中的任何值不存在于另一个列表中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74952613/

相关文章:

c++ - 如何对使用Luabridge返回std:vectors的类方法使用.addFunction

java - Redis分布式锁混淆结果与Lua脚本

string - Lua中阿拉伯字母的长度

ruby - ruby 中正则表达式的比较

c++ - 通过 std::rel_ops 特化 std::greater

ios - 创建 Realm 列表的语法

list - lisp 编程中的变量

javascript - 基于字符比较字符串

python - 在两个文件夹中查找名称首字母相同的文件

C# 确定列表中的重复项