0

我在我的最后一个里程碑准备合适的输出之前。我认为它很简单,但我的方法不起作用:

给定一个字典

mydict = {x1: (val1, dist1, (lat1, lon1)), x2: (val2, dist2, (lat2, lon2)), ...}

我尝试在数组中以嵌套方式对其进行排序,首先使用“值”,如果等于,则对“dist”进行排序。

但是,我做了功课并尝试使用这种方式:

import operator
s = sorted(mydict.iteritems(), key=operator.itemgetter(1))

问题是,如果排序方法适用于元组,那将非常容易,因为它的顺序已经正确。

不幸的是我得到:

“列表”对象不可调用

你有想法吗?

4

2 回答 2

5

您是否可以sorted用列表值覆盖名称?

于 2012-07-26T00:12:06.300 回答
0

问题是,如果排序方法适用于元组,那就很容易了

sorted()在元组列表上工作得很好,在这种情况下,它使用字典排序

(a,b) ≤ (a′,b′) 当且仅当 a < a′ 或 (a = a′ and b ≤ b′)。

这可以扩展到任意数量的维度。

>>> sorted([(10, 1), (5, 3), (6, 5), (3, 2), (5, 10)])
[(3, 2), (5, 3), (5, 10), (6, 5), (10, 1)]
于 2012-07-26T00:16:18.660 回答