【问题标题】:One-liner to modify all elements in a list?单行修改列表中的所有元素?
【发布时间】:2021-01-20 11:34:01
【问题描述】:

我正在寻找此 Python 代码的 Lua 等效项(如果可能):

>>> ["prefix" + suffix for suffix in ["1","2","3"] ]
['prefix1', 'prefix2', 'prefix3']

这是我目前得到的 Lua 代码,我想知道是否有更紧凑的方式来编码:

function foo (prefix, suffices)
  local newList = {}
  for k,v in pairs(suffices) do
    table.insert(newList, prefix .. v)
  end
  return newList
end

a = foo( "prefix", {"1","2","3"} );

【问题讨论】:

  • 可能这是最简洁的。也在这里查看:stackoverflow.com/questions/2050637/…
  • 我很困惑。该链接显示了如何在 Python 中实现单线。我在 Lua 中寻找单线。
  • 对不起我的错误
  • @IoaTzimas,我认为“this”是指作者提出的Lua代码;到目前为止,我似乎是最简洁的。除非已经在别处定义了 map 函数。

标签: python lua


【解决方案1】:

没有更短的方法可以做到这一点。

function prepend_prefix(prefix, suffices)
  local newList = {}
  for _,v in ipairs(suffices) do
    newList[#newList+1] = string.format("%s%s", prefix, v)
  end
  return newList
end

你为什么要为每个项目保留这些多余的前缀?你为什么不用一些“特殊”的表(模型)来包装它,并公开一个为你准备的 get 方法?

问题是,当您保留不同的字符串(它们是否几乎相同并不重要)时,您的内存使用量将会增加。

【讨论】:

    猜你喜欢
    • 2020-11-02
    • 2013-04-26
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多