python - 按除法值排序列表

标签 python list sorting lambda key

我正在尝试学习 Python,我遇到了这样的问题。

我有一个列表:

a = [[10,5],[9,3],[16,2],[8,8]]

我想获得一个列表,该列表将按 divion arr[i][0]/arr[i][1] 的值 desc 排序。例如对于列表 a(排序后)我想要:

a =[[8,8],[10,5],[9,3],[16,2]]

我尝试在 a.sort(key = lambda .....) 中使用 lambda 但我失败了。

你能帮我理解它是怎么回事吗?

最佳答案

使用sorted()使用 key,例如:

>>> a = [[10,5],[9,3],[16,2],[8,8]]
>>> sorted(a, key= lambda x: x[0]/x[1])
[[8, 8], [10, 5], [9, 3], [16, 2]]

来自文档,

key specifies a function of one argument that is used to extract a comparison key from each list element

这里,lambda 函数返回第一个元素除以第二个元素的答案

lambda x: x[0]/x[1]

关于python - 按除法值排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17520521/

相关文章:

c# - 以字符串形式按属性对对象进行排序

python : AttributeError

python - 如何在python中遍历文件

python - 将列表值应用于字典列表

python - 在 TensorFlow 中对数组进行排序

Python:根据值/条件创建子列表

c++ - 模板函数参数的含义是什么?

java - Json Java 中的 Enum 列表

python - 此代码中的控制流是什么?

javascript - 按属性对数组中的对象进行分组