如何同时使用一个排序规则对多个Lua表进行有序排列?

2026-04-01 20:121阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

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

如何同时使用一个排序规则对多个Lua表进行有序排列?

示例:使用以下代码创建两个表,并比较它们的元素,直到两个表中的第一个表满足特定条件。此函数不会修改任何表,并返回排序后的第二个表。

pythontable1=[2, 3, 1]table2=['a', 'b', 'c']

while table1 !=[1, 2, 3]: table1.sort() table2.sort()

print(排序后的table2:, table2)

例:

table1 = {2,3,1} table2 = {a,b,c}

table1 = {1,2,3} table2 = {c,a,b} 此函数不会修改任何一个表,并返回根据第一个表排序的第二个表.您可以在第一个表中传递键的比较,就像在table.sort中一样.

如何同时使用一个排序规则对多个Lua表进行有序排列?

local sort_relative = function(ref, t, cmp) local n = #ref assert(#t == n) local r = {} for i=1,n do r[i] = i end if not cmp then cmp = function(a, b) return a < b end end table.sort(r, function(a, b) return cmp(ref[a], ref[b]) end) for i=1,n do r[i] = t[r[i]] end return r end

例如:

local table1 = {2, 3, 1} local table2 = {"a","b","c"} local sorted = sort_relative(table1, table2) print(table.unpack(sorted))

结果是:

c a b

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

如何同时使用一个排序规则对多个Lua表进行有序排列?

示例:使用以下代码创建两个表,并比较它们的元素,直到两个表中的第一个表满足特定条件。此函数不会修改任何表,并返回排序后的第二个表。

pythontable1=[2, 3, 1]table2=['a', 'b', 'c']

while table1 !=[1, 2, 3]: table1.sort() table2.sort()

print(排序后的table2:, table2)

例:

table1 = {2,3,1} table2 = {a,b,c}

table1 = {1,2,3} table2 = {c,a,b} 此函数不会修改任何一个表,并返回根据第一个表排序的第二个表.您可以在第一个表中传递键的比较,就像在table.sort中一样.

如何同时使用一个排序规则对多个Lua表进行有序排列?

local sort_relative = function(ref, t, cmp) local n = #ref assert(#t == n) local r = {} for i=1,n do r[i] = i end if not cmp then cmp = function(a, b) return a < b end end table.sort(r, function(a, b) return cmp(ref[a], ref[b]) end) for i=1,n do r[i] = t[r[i]] end return r end

例如:

local table1 = {2, 3, 1} local table2 = {"a","b","c"} local sorted = sort_relative(table1, table2) print(table.unpack(sorted))

结果是:

c a b