【问题标题】:pick the minimum value out of a list of sublists and display another value in that sublist with the minimum从子列表列表中选择最小值并在该子列表中显示另一个具有最小值的值
【发布时间】:2014-03-24 10:25:46
【问题描述】:

假设我有一个清单:

stuff =  [[5,3,8],[2,4,7],[14,5,9]]

每个子列表的格式为[x,y,z]

我想为子列表中的第三个条目找到此列表的最小值,即z=7。然后我想打印出该子列表的第一个值x

ex) z 的最小值出现在x = 2

【问题讨论】:

    标签: python list selection minimum


    【解决方案1】:

    您可以通过内置的min 函数key 来访问每个子列表中的第三个元素:

    演示

    >>> stuff = [[5,3,8],[2,4,7],[14,5,9]]
    >>> x, y, z = min(stuff, key=lambda arr: arr[2])
    >>> x, y, z
    (2, 4, 7)
    

    【讨论】:

      【解决方案2】:

      您可以使用带有key 参数的内置min 函数,像这样

      stuff = [[5,3,8],[2,4,7],[14,5,9]]
      print min(stuff, key = lambda x: x[2])[0]   # 2
      

      为了使其更具可读性,您可以像这样解压缩值

      print min(stuff, key = lambda (x, y, z): z)[0]
      

      对于 stuff 的每个元素,分配给key 参数的函数将被调用。现在,最小值将仅根据该函数返回的值来确定。

      【讨论】:

      • 非常好,它有效。谢谢,但你能告诉我 key = lambda 的作用吗?
      • @BobUnger 请查看答案以获得简短的解释,并浏览我为min 提供的文档链接。 :)
      猜你喜欢
      • 1970-01-01
      • 2017-11-13
      • 2016-09-04
      • 2018-08-25
      • 2020-03-04
      • 2013-04-08
      • 2021-02-22
      • 2019-09-20
      • 1970-01-01
      相关资源
      最近更新 更多