繁体   English   中英

查找元组中最小元素的最大值

[英]Find maximum value of minimum elements in tuple

如果我有清单

[[209, 34], [50, 170], [197, 32], [75, 156], [176, 51], [54, 141], [205, 19], [35, 173]]

如何查找具有最大最小元素的子列表?

也就是说,在上述情况下,它的索引为[3] - [75,156]因为它的最小值大于所有其他元素的最小值。

它应该很简单:

max(list_of_iterables, key=min)

即:

>>> lst = [[209, 34], [50, 170], [197, 32], [75, 156], [176, 51], [54, 141], [205, 19], [35, 173]]
[[209, 34], [50, 170], [197, 32], [75, 156], [176, 51], [54, 141], [205, 19], [35, 173]]
>>> max(lst, key=min)
[75, 156]

max (和min )功能通过一个可迭代行走,并在可迭代挑选出的最大(或最小的各元素进行比较工作min )元件。 问题是比较的事物是应用于单个元素的key功能的结果。 默认情况下, key功能只是身份功能-但可以是您想要的任何功能。 在这种情况下,我的关键功能是min ,它挑选出子列表的最小值。 然后,我们根据子列表的最小值比较子列表,然后选择max的子列表,这正是您的问题所要的。

您可以使用sorted功能。

>>> lst = [[209, 34], [50, 170], [197, 32], [75, 156], [176, 51], [54, 141], [205, 19], [35, 173]]
[[209, 34], [50, 170], [197, 32], [75, 156], [176, 51], [54, 141], [205, 19], [35, 173]]
>>> sorted(lst, key=min, reverse=True)
[[75, 156],
 [54, 141],
 [176, 51],
 [50, 170],
 [35, 173],
 [209, 34],
 [197, 32],
 [205, 19]]

key=min表示对列表进行排序时将使用min函数。

然后可以使用index方法找到值的index 喜欢:

>>> lst.index([75, 156])
3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM