【问题标题】:Return Nested List Min/Max Values返回嵌套列表最小值/最大值
【发布时间】:2019-06-24 10:56:55
【问题描述】:

我搜索了 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]))

【问题讨论】:

    标签: list nested max min


    【解决方案1】:

    多亏了另一位 Python 用户,在摸索了更多之后才能够理解需要做什么。 首先为最小值排序第一个元素,然后对第二个元素使用该排序。最初以 2 种不同的方式完成,但显示为一个衬里。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-05
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      相关资源
      最近更新 更多