将字符串重新分配给数组中的一组值列表

卡魔拉

我在 Lua 中有一个固定格式的列表(它是从其他地方输入的)。

例如

a = {"apple", "apple 1", "pear", "orange", "orange 3", "kiwi", "tomato"}

我还有一个查找表,我想在其中规范化这个集合并将它们发送到代码格式。注意:任何包含苹果的东西,比如苹果 1、苹果 2 等都将映射到与苹果相同的值。

例如

"apple" => "RD"
"pear" => "GR"
"orange" => "OG"
"kiwi" => "GR"
"tomato" => "RD"
"banana" => "YL"
etc...

然后我想返回一个包含所有这些替换的列表:

fruitBox = {"RD", "GR", "OG"}

我不介意是否fruitBox有重复的值,不管是最简单的,但它应该只返回在查找和原始列表中都表示的值。我一直在尝试这样做,但要匹配字符串,但最终总是被困在如何输出代码上。我也尝试string.gsub并迭代了 afor loop但仍然没有任何用处。

保罗·库尔琴科

您需要将映射列表存储在(哈希)表中,并使用第二个表中的映射遍历第一个列表来更改元素。这样的事情应该工作:

local a = {"apple", "pear", "orange", "kiwi", "tomato"}
local map = {
  apple = "RD",
  pear = "GR",
  orange = "OG",
  kiwi = "GR",
  tomato = "RD",
  banana = "YL",
}
for index = 1, #a do
  a[index] = map[a[index]] or "missing mapping"
end

-- print results
for index = 1, #a do print(a[index]) end

RD GR OG GR RD为我打印

如果您真的想跳过映射中不存在的元素(我不建议这样做,因为很难在映射或数据中找到错误),然后使用单独的表并在循环中执行table.insert而不是a[index]...赋值.

如果字符串有一些非字母(如更新的问题),您可能希望使用gsub("%A","")或类似的方法删除它们

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将字符串分配给动态int数组时的重新分配问题

二郎 如何将值重新分配给字符串

R 将列表中的字符值分配给数据框列中的唯一组

如何将列表中的值分配给数据框中的一组值?

如何基于R中的一组关键字将数字代码分配给字符串

将内存重新分配给字符串的问题

在一系列列表中重新分配字符串值

如果将字符放置在字符串(数组)中,则将字符串值分配给字符

将值分配给以字符串形式存储在R中的嵌套列表的索引

如何将字符串中的值分配给2d数组?

将组编号分配给pandas数据框中的一组特定值

如何根据字符串的三进制值将列表中的位置分配给字符串?

使用另一个数组将值重新分配给 numpy 数组

如何在C ++中有效地将数字值重新分配给字符数组

将字符串数组中的值分配给自定义类型数组的每个元素的string属性

重新分配,用于C中的字符串数组

将字符串(从字符串列表中)分配给数据框名称pandas

javascript将值重新分配给创建的元素

将值重新分配给字典的pythonic方法

将功能重新分配给值

将char *数组中的字符串分配给另一个char *数组

C ++将char **分配给字符串数组

将数组字符串分配给某些链接

无法将字符串分配给数组

将字符串分配给char数组

将图像数组分配给字符串

将字符串分配给String数组

将字符串分配给指针数组

将 SwiftyJSON 对象分配给字符串数组