如何执行算术来对列表进行排序
问题描述:
我有一个由两个数字组成的列表。如何执行算术来对列表进行排序
[[2, 3], [7, 8], [3, 5]]
我想基于将对它们进行排序的每个:
例如,2/3(0.666),7/8(0.875)3/5(0.6) 到输出:
[[3, 5], [2, 3], [7, 8]]
我假设我会以某种方式使用lambda,但我不知道如何正确编写它。类似这样的,但这只是按值排序:
list_of_lists.sort(key=lambda x: (x[0],x[1]))
如何执行算术?
答
lists = [[2, 3], [7, 8], [3, 5]]
lists.sort(key=lambda x: (x[0]/x[1]))
print(lists)
答
愿这一个对你有帮助。
a=[[2, 3], [7, 8], [3, 5]]
print (sorted([a[i][0]/a[i][1] for i in range(len(a))]))
+0
为什么投了票? –
python 2.x用户的旁注:在这里你必须将其中一个操作符转换为浮点。 例如: 'float(x [0])/ x [1]' – cbo
感谢@cbo为'python 2.x'用户添加Sidenote。 –
我相信cbo暗示你可能想编辑你的答案来反映这个笔记。毕竟,评论不一定会永远存在。 –