小编Jak*_*lec的帖子

Python中按字典顺序对列表列表进行排序

我想获取元组列表的最小元素

a = [[(1, 0), (2, 0), (1, 1)], [(2, 0), (1, 1), (1, 0)], [(1, 1), (1, 0), (2, 0)]]
Run Code Online (Sandbox Code Playgroud)

按字典顺序排列,因此[(1,1),(1,0),(2,0)]] < [(1,0),(2,0),(1,1)],因为元组的第 0 个条目具有更高的优先级,即1,1,2 < 1,2,1,而第 1 个条目的优先级较低。

min(a)
Run Code Online (Sandbox Code Playgroud)

返回[(1, 0), (2, 0), (1, 1)],这当然是不正确的。

我只需要最小元素的索引,因此错误的版本是

print(min(range(len(a)), key=lambda i: a[i]))
Run Code Online (Sandbox Code Playgroud)

(最小元素和仅索引方法将受到赞赏)。

当然,可以使用 zip 或其他东西编写自定义循环,但我想要一种开销很小的解决方案。

python sorting list lexicographic lexicographic-ordering

2
推荐指数
1
解决办法
108
查看次数