[英]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.