我在最后一个里程碑之前准备合适的输出。我认为这非常简单,但我的方法并不奏效:
给出像
这样的字典mydict = {x1: (val1, dist1, (lat1, lon1)), x2: (val2, dist2, (lat2, lon2)), ...}
我尝试在数组中以嵌套方式对其进行排序,首先使用"值"如果等于,则排序" dist"。
然而,我完成了我的作业并尝试使用这种方式:
import operator
s = sorted(mydict.iteritems(), key=operator.itemgetter(1))
问题是,如果排序方法适用于元组,那将非常简单,因为它已经是正确的顺序。
不幸的是我得到了:
'列表'对象不可调用
你有什么想法吗?
答案 0 :(得分:5)
是否可以用名单值覆盖名称sorted
?
答案 1 :(得分:0)
问题是如果排序方法适用于元组,那将非常容易
sorted()
在元组列表中完美运行,在这种情况下,它使用lexicographic ordering。
(a,b)≤(a',b')当且仅当a< a'或(a = a'和b≤b')。
这可以扩展到任意数量的维度。
>>> sorted([(10, 1), (5, 3), (6, 5), (3, 2), (5, 10)])
[(3, 2), (5, 3), (5, 10), (6, 5), (10, 1)]