返回嵌套列表的最小值/最大值

时间:2019-01-31 03:21:14

标签: list nested max min

我搜索了stackoverflow,但由于无法确定它而发现了类似的请求。我有一个嵌套列表,例如

[[12, 16], [0, 18], [12, 20], [12, 24], [0, 28], [28, 32], [0, 36], [12, 40], [32, 44], [12, 48]]

我正在尝试获取一对数字,其中包含第一个元素的最小值和第二个元素的最大值,它们都出现在同一对中。在上述情况下,正确的回报应该是[0,36]。我一直在用以下在stackoverflow上找到的语句进行测试。这似乎并没有退还我的期望,我知道我可能会丢失一些东西。当我执行该语句时,我得到[0,18]或最小值的第一个实例。除了编写多个循环以获取所需的结果之外,还有其他方法吗?谢谢

min(alist, key=lambda item: (item[0], -item[1]))

1 个答案:

答案 0 :(得分:0)

多亏了另一个Python用户,经过更多的头部抓挠之后,才能够理解需要做什么。 首先对第一个元素的最小值进行排序,然后对第二个元素使用该排序。最初将其分为2种类型,但显示为一种衬板。

max(v for v in sorted(alist) if v[0] == min(sorted(alist)[0]))

这将返回包含列表中第一个元素的最小值和同一列表中第二个元素的最大值的对(列表)。