我有以下元组列表
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)
根据@udo的要求,
min(zip(*lstoflsts)[1])
Run Code Online (Sandbox Code Playgroud)
这将更改列表,使列成为行(旋转它),然后获取第二行(基于 0 的索引)(之前的列)。
最后,它返回最小值。
| 归档时间: |
|
| 查看次数: |
723 次 |
| 最近记录: |