如果我有一个列表
[[209, 34], [50, 170], [197, 32], [75, 156], [176, 51], [54, 141], [205, 19], [35, 173]]
我将如何找到具有最大最小元素的子列表?
即,在上述情况下,它将是 index[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
这正是您的问题所要求的。
我是一名优秀的程序员,十分优秀!