在Lua中获取列表或表的一部分

时间:2013-03-05 13:10:05

标签: lua lua-table

我知道在Python中很容易做到:someList[1:2] 但你在Lua怎么样?该代码给我一个语法错误。

3 个答案:

答案 0 :(得分:15)

{unpack(someList, from_index, to_index)}

但表索引将从1开始,而不是从from_index

开始

答案 1 :(得分:10)

Lua内置的unpack功能可以为您完成这项工作:

  

返回给定表中的元素。

您也可以使用

x, y = someList[1], someList[2]

获得相同的结果。但是这种方法不适用于的不同长度。

用法

table.unpack (list [, i [, j]])

返回给定表中的元素。此功能相当于

return list[i], list[i+1], ···, list[j]

默认情况下,i 1 j #list

codepad链接显示相同的工作情况。

答案 2 :(得分:2)

完全等同于the Python

jupyter

in Lua

someList = [ 'a', 'b', 'c', 'd' ]
subList = someList[1:2]
print( subList )    

关键是someList = { 'a', 'b', 'c' , 'd' } subList = { unpack( someList, 2, 2 ) } print( unpack(subList) ) 返回"multiple results" 一个表,所以要在Lua中获取一个列表(也就是表),你需要“tablify” unpack{的结果。

但是,您无法在Lua中打印,但是您可以打印多个结果以便获得有意义的输出,您需要再次将其解压缩。

与Python模仿多个使用列表不同,Lua确实拥有它们。

Lua }的更高版本中的

Nb 变为unpack