gpt4 book ai didi

没有lambda表达式的python排序

转载 作者:太空狗 更新时间:2023-10-29 21:16:25 24 4
gpt4 key购买 nike

我经常在 Python 中使用 lambda 表达式进行排序,虽然它工作正常,但我发现它的可读性不高,希望有更好的方法。这是我的典型用例。

我有一个数字列表,例如,x = [12, 101, 4, 56, ...]

我有一个单独的索引列表:y = range(len(x))

我想根据 x 中的值对 y 进行排序,我这样做:

y.sort(key=lambda a: x[a])

有没有不使用 lambda 的好方法?

最佳答案

您可以使用列表 x 的 __getitem__ 方法。这与您的 lambda 行为相同,并且会更快,因为它是作为 C 函数而不是 python 函数实现的:

>>> x = [12, 101, 4, 56]
>>> y = range(len(x))
>>> sorted(y, key=x.__getitem__)
[2, 0, 3, 1]

关于没有lambda表达式的python排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3407414/

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