Lua、Python / 排列を逆順に並べ換える

Luaの場合:

function table.reverse(tbl)
    local len  = #tbl
    local temp = {}
    for i = len, 1, -1 do
        temp[#temp+1] = tbl[i]
    end
    return temp
end

-- test --
do

local lst = {"a", "b", "c", "d"}
local rev = table.reverse(lst)
print(table.concat(rev, ", "))

end

実行結果:
f:id:ti-nspire:20180731070909p:plain

―――――――――――――――――――――――――――――――――――
Pythonの場合:
理窟はわからないがスライスでいける。

lst = ["a", "b", "c", "d"]
lst[::-1]

実行結果:
f:id:ti-nspire:20180731161858p:plain
―――――――――――――――――――――――――――――――――――
2018年10月1日、理窟がわかった。
lst[:]にするとリスト全体([0]から1周して[0]まで)がスライスされる。
lst[::-1]にするとリストの全部の要素が-1個飛びで(要するに末尾から1個ずつさかのぼって)抽出されて新たなリストが作られる。