gpt4 book ai didi

sorting - 将一个表中的无序键复制到另一个表中的有序值

转载 作者:行者123 更新时间:2023-12-04 17:01:28 27 4
gpt4 key购买 nike

我有一个将字符串映射到数字的表,如下所示:

t['a']=10
t['b']=2
t['c']=4
t['d']=11

据此我想创建一个类似数组的表,其值是第一个表中的键,按第一个表中的(降序)值排序,如下所示:

T[1] = 'd' -- 11
T[2] = 'a' -- 10
T[3] = 'c' -- 4
T[4] = 'b' -- 2

这在 Lua 中如何完成?

最佳答案

-- Your table
local t = { }
t["a"] = 10
t["b"] = 2
t["c"] = 4
t["d"] = 11

local T = { } -- Result goes here

-- Store both key and value as pairs
for k, v in pairs(t) do
T[#T + 1] = { k = k, v = v }
end

-- Sort by value
table.sort(T, function(lhs, rhs) return lhs.v > rhs.v end)

-- Leave only keys, drop values
for i = 1, #T do
T[i] = T[i].k
end

-- Print the result
for i = 1, #T do
print("T["..i.."] = " .. ("%q"):format(T[i]))
end

打印

T[1] = "d"T[2] = "a"T[3] = "c"T[4] = "b"

关于sorting - 将一个表中的无序键复制到另一个表中的有序值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5153642/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com