【发布时间】:2016-11-14 04:06:48
【问题描述】:
好的 - 已经为此苦苦挣扎了一段时间。我刚刚开始学习 Python,在这方面非常新。
我有一个元组列表,需要按每个元组中值的比率进行排序。
输入:
L = [(1,3), (1,7), (4,8)]
返回一个排序列表:
L = [(1,7), (1,3), (4,8)]
需要使用 sort 和自定义键对其进行排序。我见过人们使用 itemgetter,但我也无法使用该版本。
到目前为止我的尝试:
sorted(L, key = lambda x: [(i[0]/float(i[1])) for i in x])
我一直以此为指导: How to sort (list/tuple) of lists/tuples?
似乎使用 itemgetter 是最快的,但我也无法让它工作......
【问题讨论】:
-
key = lambda x: (x[0]/float(x[1])) -
顺便说一句,如果您使用的是 Python 2,则可以通过将
from __future__ import division放在导入的顶部来获得 Python 3 样式划分(除非您使用的是 very Python 2 的古代版本)。然后你就不需要float转换电话了。如果您想要楼层划分,您应该始终使用//,即使您不使用该导入,因为最好明确说明您在做什么。