我是Lua的新手,我想知道是否有一些紧凑的方法可以像在Python中那样在Lua中定义list
和metatable
:
lis = [i for i in set if i>0]
任何例子都将不胜感激。
Lua没有本地列表
然而,正如@joachim所指出的,你可以使用一些技巧来实现它。
local comp = require 'comprehension' . new()
comp 'table(v,k for k,v in pairs(_1))' {[3]=5, [5]=7}
它将产生:
{[5]=3, [7]=5}
请注意,comprehension
在普通的5.2.xLua中不起作用。它需要Penlight Lua库:http://stevedonovan.github.com/Penlight/api/index.html
您也可以使用MetaLua或LuaMacros