【问题标题】:How do I sort a multidimensional table in Lua?如何在 Lua 中对多维表进行排序?
【发布时间】:2020-02-18 09:09:59
【问题描述】:

我有一个表格,基本上由以下内容组成:

myTable = {{1, 6.345}, {2, 3.678}, {3, 4.890}}

我想按十进制值对表格进行排序。 所以我希望输出是:

{{2, 3.678}, {3, 4.890}, {1, 6.345}}

如果可能,我想使用 table.sort() 函数。提前感谢您的帮助:-)

【问题讨论】:

    标签: arrays sorting multidimensional-array lua lua-table


    【解决方案1】:

    鉴于你的表是一个序列,你可以直接使用table.sort。这个函数接受一个比较谓词作为它的第二个参数,它规定了比较逻辑:

    require 'table'
    
    myTable = {{1, 6.345}, {2, 3.678}, {3, 4.890}}
    
    table.sort(myTable, function(lhs, rhs) return lhs[2] < rhs[2] end)
    

    打印表格,例如如for _, v in ipairs(myTable) do print(v[1], v[2]) end 然后显示所需的顺序:

    2       3.678
    3       4.89
    1       6.345
    

    这里的关键不是要排序的表的维度,而是它是一个序列,即有序的事实。

    【讨论】:

      猜你喜欢
      • 2014-10-13
      • 2014-08-01
      • 2013-03-20
      • 2013-07-29
      • 1970-01-01
      • 2020-02-08
      • 1970-01-01
      • 2017-07-03
      • 1970-01-01
      相关资源
      最近更新 更多