检查多个位置的值并仅在源唯一时返回匹配项

2024-05-09

假设我有一个清单Vendors:阿斯达、乐购、Spar。

我有一个清单Sources(或者这个类比中的供应商):家乐氏(Kellogg)、吉百利(Cadbury)、雀巢(Nestle)、强生(Johnsons)、帮宝适(Pampers)、Simple 等(有大约 20 个定义的列表)。

数据流中的其他地方。我正在返回一个结果,对于每个供应商、多个不同的事物来说,该结果是“是”/“否”。

例如:阿斯达:仅英国=“是”; Spar:仅限英国 =“否”等。

在这个特定部分中,我正在整理结果。

大多数情况下,供应商的来源是否重叠并不重要。所以我只能说:

function concatResults(x) -- concats the result of "x" for each vendor
 local pathAsda = *this is where I call the path location specific to Asda*
 local pathTesco = *this is where I call the path location specific to Tesco*
 local pathSpar = *this is where I call the path location specific to Spar*
   if (pathAsda == "Yes" or pathTesco == "Yes" or pathSpar == "Yes") then
    return "Yes"
   else
    return "No"
   end
end

ukOnlyAgr = concatResults("ukOnly")

Great!

现在,假设我想做一些更复杂的事情。

我想知道有多少独特的供应商在提供巧克力和谷物食品。下面的示例将在流程中进一步使用以产生事实suppliesSweet,仅当至少涉及两个来源(供应商)并且它们必须至少供应巧克力时。这将为每个供应商单独完成(请假设我已经根据输入数据定义了变量:

if (suppliesChoc > 0 and suppliesCereal > 0 and numSources > 1) or (suppliesChoc > 1) then
  then suppliesSweet = "Yes"
else suppliesSweet = "No"
end

还不是问题。

当我尝试跨供应商汇总这些结果时,问题就出现了(就像我之前所做的那样)ukOnly).

我已经使用了以下功能:

table.contains = function(t, value) -- Finds if "value" exists inside the table "t"
    for index = 1, #t do
        if t[index] == value then
            return index    
        end
    end
end

并正在考虑创建这个:

table.overlap = function(t,g) -- Finds if tables "g" and "t" have any overlapping values
    for i=1,#t do
        if table.contains(g,t[i]) then
           return true
        else
           return false
        end
    end
end

但我只是不确定从那里去哪里。

您可以假设我已经获得了每个供应商的独特来源列表,并且我不介意我们是否过度限制。 IE。如果两个供应商之间有任何来源重叠,那么整个结果就会无效。

你也可以假设我有每个“事实”:suppliesChoc, suppliesCereal, numSources and suppliesSweet对于每个供应商单独返回的。


我相信您正在寻找两个集合的交集。

https://en.wikipedia.org/wiki/Intersection_(set_theory) https://en.wikipedia.org/wiki/Intersection_(set_theory)

一组是你的供应商的供应商,另一组是供应糖果的供应商。

local vendors = {
  Asda = {Kellogg = true, Cadbury = true, Nestle = true, Johnsons = true, Pampers = true, Simple = true}, 
  Tesco = {Kellogg = true, Cadbury = true, Nestle = true, Johnsons = true},
  Spar ={Nestle = true, Johnsons = true, Pampers = true, Simple = true}
}

function intersection(s1, s2)
  local output = {}
  
  for key in pairs(s1) do
    output[#output + 1] = s2[key]
  end

  return output
end

local sweetSuppliers = {Kellogg = true, Cadbury = true, Nestle = true}

for name, suppliers in pairs(vendors) do
  local result = intersection(sweetSuppliers, suppliers)
  
  print(name .. " has " .. #result .. " sweets suppliers")
end

以下是处理集合的库的一些示例:

odkr的properset.lua https://github.com/odkr/properset.lua/blob/master/src/properset.lua

窗工套装.lua https://github.com/Windower/Lua/blob/dev/addons/libs/sets.lua

两者都可以让您了解如何使用集合来完成交集等任务

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查多个位置的值并仅在源唯一时返回匹配项 的相关文章

  • 手写签名对比

    有谁知道java中一种将手写文本样本 例如签名 亲笔签名等 与一个或多个样本进行比较的方法 最好是开源的 你可以看看这个OCR小程序 http www heatonresearch com articles 42 page1 html
  • 将用户定义的函数应用于数据框列表

    我有一系列结构与此类似的数据框 df lt data frame x c notes year 1995 2005 y c NA value 11 21 df2 lt data frame x c notes year 1995 2005
  • 如何循环遍历表并保持顺序?

    我得到了下表 local a 12 30 24 60 60 year 30 24 60 60 month 24 60 60 day 60 60 hour 60 minute 1 second 但是 当我对它进行配对循环并打印 key val
  • 列表子类的 Python 类型

    我希望能够定义列表子类的内容必须是什么 该类如下所示 class A list def init self list init self 我想包括打字 这样就会发生以下情况 import typing class A list typing
  • 在 R 中垂直绘制表 kable::extra 和 kable 的列表?

    我需要绘制表格列表一个在另一个之下 显示垂直 有任何想法吗 问题从这里开始 https stackoverflow com questions 73867229 plot a list of tables in a single table
  • 列表值意外变化[重复]

    这个问题在这里已经有答案了 为什么是这个列表r即使我只是想更改列表 也会被更改v 即使它们不指向相同的内存位置 r v list r 2 2 1 2 8 3 10 2 1 8 4 2 4 6 4 for c a in enumerate r
  • 在 Python 中合并/添加列表

    我很确定应该有一种更 Pythonic 的方法来做到这一点 但我想不出一种方法 如何将二维列表合并到一维列表中 有点像 zip map 但有两个以上的迭代器 示例 我有以下列表 array 1 2 3 4 5 6 7 8 9 我希望有 re
  • 查找字典中列表的最大值

    我有一个字典 每个键后面都有一个存储的列表 看起来像这样 dict with values u New York u New York u NY datetime datetime 2014 8 13 0 0 10 u New York u
  • 循环列表的值[重复]

    这个问题在这里已经有答案了 我是编码新手 正在尝试编写一个简单的代码 该代码将采用一个列表 例如 1 2 3 并循环元素 n 次 所以如果n 1 我应该得到A 3 1 2 如果n 2 我应该得到A 2 3 1 我写的代码是 n 1 j 0
  • 在 Lua 中更改元表会破坏冒号运算符

    在学习Lua的过程中 我借用了一些代码here http lua users org wiki StringIndexing使用字符串索引 正是这样 getmetatable index function str i return stri
  • 列表 到数据视图

    如何在 Net 中将列表转换为数据视图 我的建议是将列表转换为 DataTable 然后使用表的默认视图来构建 DataView 首先 您必须构建数据表
  • 在 HTML 下拉列表中有一个滚动条

    我正在寻找一种在 HTML 的下拉列表中添加滚动条的方法 这样如果下拉列表包含的内容超过例如 5 项 将出现滚动条以查看其余项 这是因为我将被迫列出一些大清单 过去几个小时我一直在谷歌上搜索它 但没有运气 它需要适用于 IE8 FF 和 C
  • 颤动:所选值不显示在下拉列表中

    我正在从 SQLite 数据库填充城市名称并尝试显示为下拉列表 我通过遵循教程使其工作 但遇到了一个小问题 所选值不会显示在下拉列表中 它继续显示默认提示值 但是 我能够分配和检索正确的选定值 这是我的代码 cities dart clas
  • 当我将列表分配给变量时,为什么 Pycharm 会提示我“此列表创建可以重写为列表文字”?

    我是一个Python初学者 有一个难题 当我写这样的代码时 lst 1 2 3 4 Pycharm给我的提示是 这个列表创建可以重写为列表文字 但如果换成 lst list 1 2 3 4 Pycharm什么也没说 谁能告诉我为什么 这段代
  • R从列表中提取数据框,列名中没有前缀

    我在列表中放置了一个数据框 然后 当尝试将其提取回来时 我得到了该数据帧的所有以列表键为前缀的列名称 有没有办法完全按照最初传递的方式提取数据帧 cols lt c column1 Column2 Column3 df1 lt data f
  • 如何实现通用 switch/case,它也适用于一般 C++ 类型并且语法相似?

    在 C C 中 switch case仅将整型类型与编译时常量进行比较 不可能使用它们来比较用户 库定义的类型 例如std string与运行时值 为什么 switch 语句不能应用于字符串 https stackoverflow com
  • 使用 FIND 命令进行并集、交集和排除?

    我需要使用 find 命令管理列表 假设列表在非不同列表中具有随机名称 即它们的交集不是空集 我能怎么做 A B 查找列表A中除列表B中的文件之外的文件 A 路口 B 查找列表 A 和 B 共有的文件 请咨询here https stack
  • 如何在 Lua-C API 5.2 中创建类对象?

    我正在使用 Lua 封装 C 函数 使用 Lua 5 2 的 Lua C API include
  • 嵌套列表的重叠会产生不必要的间隙

    我有一个包含三个列表的嵌套 这些列表由 for 循环填充 并且填充由 if 条件控制 第一次迭代后 它可能类似于以下示例 a 1 2 0 0 0 0 0 0 4 5 0 0 0 0 0 0 6 7 根据条件 它们不重叠 在第二次迭代之后 新
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • Parse.com 因超出突发限制而拒绝服务

    我使用 Parse 创建了一个 iOS 应用程序 其中使用的是从 Parse com 网站下载的 iOS SDK 为了创建此类应用程序 ApplicationID 和 ClientID 密钥都嵌入在 iOS 应用程序中 并在使用应用程序时从
  • 使用 AngularJS 将图像上传到 Firebase

    我有一个处理 剧集 的服务 创建 删除和更新它们 它看起来像这样 app service Episode firebase FIREBASE URL function firebase FIREBASE URL var ref new Fi
  • 使用动画更改 UIView 背景颜色

    我想改变我的UIView带有过渡动画的背景颜色 例如 如果视图是红色的 我将其更改为蓝色 蓝色将从屏幕底部向上滑动到顶部并充满整个屏幕 我想通过制作一个来做到这一点UIView具有相同大小和所需颜色 然后将其从屏幕外一直动画到顶部 但这似乎
  • 在 JavaScript 中嵌套“switch”案例:有速度优势吗?

    这里有新手问题 我有一个包含大量字符串的 开关 像这样按字母顺序拆分是否有速度优势 switch myString substring 0 1 case a switch myString case a string beginning w
  • 我应该如何在使用实例属性和类属性之间进行选择?

    我尝试了这个示例代码 class testclass classvar its classvariable LITERAL def init self x y self z x self classvar its initvariable
  • 如何在 Flutter 中为 Button 添加渐变?

    有没有办法改变ElevatedButton背景颜色渐变 如果没有一些小瑕疵或问题 例如缺少涟漪效应 不需要的边框 不尊重主题的内容 上述所有解决方案都无法真正发挥作用minWidth对于按钮 The 下面的解决方案没有上述问题 关键部分是使
  • 关于指针对齐的问题

    我正在研究内存池实现 我对指针对齐有点困惑 假设我有一个分配固定大小内存块的内存池 在创建内存池时我使用 malloc size num of block 如果分配的是对象 并且大小来自 sizeof 运算符对齐 则不必担心 但如果大小不均
  • 如何使用python检查任务管理器中某个进程是否正在运行

    我在 python 中有一个函数 当任务管理器中出现某个进程 例如 proc exe 时 该函数应该开始运行 如何使用 python 监控任务管理器中运行的进程 这是我改编的东西微软 http www microsoft com techn
  • 通过 cocoa pods 创建的 .xcworkspace 中的 .xcodeproj 文件被禁用

    我浏览互联网没有找到答案 所以这就是问题所在 我有一个项目 我在其中使用了 cocoa pods 因此通过 cocoa pods 为我创建的工作区文件打开它 但是在将我的操作系统 全新安装 更新到 MacOS Sierra 后 当我在 xc
  • Haskell Cabal 包 - 找不到 Paths_ 模块

    我正在开发一个 Haskell 项目 Happstack 服务器 Blaze HTML 前端作为主要库 我想添加一个静态数据目录 看起来你可以使用 Cabal 使用自动生成的Path
  • 在 django Rest 框架中实现角色

    我正在构建一个 API 应该拥有以下类型的用户 super user 创建 管理管理员 admin 管理事件 模型 和事件参与者 participants 参加活动 受管理员邀请参加活动 另外我想让每种类型的用户都有电话号码字段 I tri
  • 有没有办法设置一个变量一次并在多个地方使用它而不给它模块级别的范围?

    我有一个循环将用户窗体控件添加到集合中 由于多个地方都需要该集合 因此我将其放入模块中并在需要时调用它 这意味着该集合仅在需要时才位于内存中 但这也意味着我每次想要使用它时都会运行一个循环 I could已给出集合模块级别范围并在第一次需要
  • 类型“Promise”上不存在属性“finally”

    我试图对承诺使用finally 方法 但我不断收到此错误 Property finally does not exist on type Promise
  • 向 TextField 添加提示

    我想添加一个TextField带有集成的提示文本 用户提示 占位符 直到用户输入文本 当 TextField 获得焦点时 提示文本会消失 如果 TextField 失去焦点且未输入任何文本 则提示文本会重新出现 我最初认为这将是 Vaadi
  • Inno Setup:允许用户只选择可以安装软件的驱动器?

    我可以允许用户只选择要安装软件的驱动器吗 例如 他们可以选择C or D drive C Software D Software 但用户不能指定任何其他内容 就像他们不能选择安装下面的软件一样Downloads or MyDocumnets
  • 如何停止 CTE 中的递归?

    我有一个数据库表 如下所示 ID PredecessorID Data 43b1e103 d8c6 40f9 b031 e5d9ef18a739 null 55f6951b 5ed3 46c8 9ad5 64e496cb521a 43b1e
  • 为什么 hibernate 在 SAVE 之前执行 SELECT?

    为什么 hibernate 在保存对象之前要进行选择 我在互联网上找不到有用的信息 这是每次保存之前的正常行为吗 我发现这个话题 选择 hibernateTemplate save 的查询运行 https stackoverflow com
  • 如何在没有 SyncAdapter 的 Android 上实现帐户

    我正在利用内置帐户系统 使用 AccountManager API 为 Android 应用程序实现一个登录系统 在 Android 2 2 上一切都很好 但在 Android 2 1 上不包含 SyncAdapter 会导致帐户设置屏幕中
  • 新的 Windows 应用程序 - 什么语言?

    我们目前正处于开发 Windows 桌面应用程序的前期阶段 但当听到有关 Windows 8 Silverlight WPF Jupiter 的所有最新讨论时 我不知道该相信什么了 现在用WPF启动一个新项目是不是有问题 我应该切换到 Si
  • 检查多个位置的值并仅在源唯一时返回匹配项

    假设我有一个清单Vendors 阿斯达 乐购 Spar 我有一个清单Sources 或者这个类比中的供应商 家乐氏 Kellogg 吉百利 Cadbury 雀巢 Nestle 强生 Johnsons 帮宝适 Pampers Simple 等