如何确定python中元组列表的列中的最小值

udo*_*udo 3 python

我有以下元组列表

lstoflsts = [(1.2, 2.1, 3.1),
             (0.9, 3.4, 7.4),
             (2.3, 1.1, 5.1)]
Run Code Online (Sandbox Code Playgroud)

我想得到第二列的最小值(基于上面的例子是1.1).

我试着玩弄min(listoflists)没有成功.

任何建议如何处理?
注意:如果可能的话我想避免在行和列上循环...

Ade*_*taş 10

最简单的方法,你可以使用min,

>>> lstoflsts = [(1.2, 2.1, 3.1),
...              (0.9, 3.4, 7.4),
...              (2.3, 1.1, 5.1)]
>>> 
>>> min(lstoflsts, key=lambda x: x[1])
(2.3, 1.1, 5.1)
>>> min(lstoflsts, key=lambda x: x[1])[1]
1.1
Run Code Online (Sandbox Code Playgroud)


mud*_*ish 5

根据@udo的要求,

min(zip(*lstoflsts)[1])
Run Code Online (Sandbox Code Playgroud)

这将更改列表,使列成为行(旋转它),然后获取第二行(基于 0 的索引)(之前的列)。

最后,它返回最小值。

  • 在 python 3 中,它将是 `min(list(zip(*lstoflsts))[1])` (2认同)