lua – 如何使用其中一个表顺序同时对两个表进行排序?
发布时间:2020-12-15 00:16:31 所属栏目:大数据 来源:网络整理
导读:例: table1 = {2,3,1}table2 = {a,b,c} 至 table1 = {1,2,3}table2 = {c,a,b} 解决方法 此函数不会修改任何一个表,并返回根据第一个表排序的第二个表.您可以在第一个表中传递键的比较,就像在table.sort中一样. local sort_relative = function(ref,t,cmp) l
例:
table1 = {2,3,1} table2 = {a,b,c} 至 table1 = {1,2,3} table2 = {c,a,b} 解决方法
此函数不会修改任何一个表,并返回根据第一个表排序的第二个表.您可以在第一个表中传递键的比较,就像在table.sort中一样.
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,1} local table2 = {"a","b","c"} local sorted = sort_relative(table1,table2) print(table.unpack(sorted)) 结果是: c a b (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- perl的expect模块实现自动输入密码登录
- 【20130604】大数据分析项目成功的五项基本原则
- perl – Mason的IDE或语法高亮编辑器?
- [bigdata-077] maven+mybatis+mysql 数据库 mybatis xml文件
- inno-setup – 在另一个进程中打开文件时,Inno Setup LoadS
- perl – Zotero:我应该使用哪种导出格式?
- perl – 如何将我的Catalyst应用程序部署为debian软件包(或
- golang简单读写文件示例
- Delphi 完整的Bug决议工具EurekaLog的使用
- Go语言 数组(Array), 分片(Slice), Map 以及 Set