Lua语言中如何实现类似Python列表推导的功能?

更新于
2026-10-04 18:40:14
17阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计213个文字,预计阅读时间需要1分钟。

Lua语言中如何实现类似Python列表推导的功能?

我是Lua的新手,想知道是否有简洁的方法来定义一个列表,就像我们在Python中使用metatable一样:`lis={i for i in set if i > 0}`。Lua没有原生命名空间,但可以使用模块化来组织代码。

我是Lua的新手,我想知道是否有一些紧凑的方法来定义一个列表,就像我们在 Python中一样在Lua中使用metatable:

lis = [i for i in set if i>0]

任何一个例子将不胜感激.

Lua没有原生名单

然而,正如@joachim指出的那样,你可以用它来实现它.

Lua语言中如何实现类似Python列表推导的功能?

local comp = require 'comprehension' . new() comp 'table(v,k for k,v in pairs(_1))' {[3]=5, [5]=7}

它会产生:

{[5]=3, [7]=5}

请注意,理解在普通的5.2.x Lua中不起作用.它需要Penlight Lua Libraries:stevedonovan.github.com/Penlight/api/index.html

您也可以使用MetaLua或LuaMacros

本文共计213个文字,预计阅读时间需要1分钟。

Lua语言中如何实现类似Python列表推导的功能?

我是Lua的新手,想知道是否有简洁的方法来定义一个列表,就像我们在Python中使用metatable一样:`lis={i for i in set if i > 0}`。Lua没有原生命名空间,但可以使用模块化来组织代码。

我是Lua的新手,我想知道是否有一些紧凑的方法来定义一个列表,就像我们在 Python中一样在Lua中使用metatable:

lis = [i for i in set if i>0]

任何一个例子将不胜感激.

Lua没有原生名单

然而,正如@joachim指出的那样,你可以用它来实现它.

Lua语言中如何实现类似Python列表推导的功能?

local comp = require 'comprehension' . new() comp 'table(v,k for k,v in pairs(_1))' {[3]=5, [5]=7}

它会产生:

{[5]=3, [7]=5}

请注意,理解在普通的5.2.x Lua中不起作用.它需要Penlight Lua Libraries:stevedonovan.github.com/Penlight/api/index.html

您也可以使用MetaLua或LuaMacros