【问题标题】:Elegant way to extract a tuple from list of tuples with minimum value of element从元素的最小值的元组列表中提取元组的优雅方法
【发布时间】:2017-06-06 21:01:42
【问题描述】:

我有一个元组列表,我希望从中得到索引1 处具有最小值的元组。例如,如果我的列表是这样的:

a =[('a', 2), ('ee', 3), ('mm', 4), ('x', 1)]

我希望返回的元组是('x', 1)

目前我正在使用sorted 函数来获得这样的结果:

min=sorted(a, key=lambda t: t[1])[0]

有更好的方法吗?也许有min 功能?

【问题讨论】:

  • 这是一个很好的解决方案。

标签: python list lambda min


【解决方案1】:

您可以使用min() 函数和key 参数来查找列表中具有最小值的元组。无需对列表进行排序。因此,您的 min 调用应该是:

>>> min(a, key=lambda t: t[1])
('x', 1)

最好使用operator.itemgetter() 代替lambda 表达式;因为 itemgetter 比较快。在这种情况下,对min 函数的调用应该是这样的:

>>> from operator import itemgetter

>>> min(a, key=itemgetter(1))
('x', 1)

注意:min() 是 Python 中的内置函数。您不应该将其用作变量名。

【讨论】:

    【解决方案2】:

    这也可以:

    min([x[::-1] for x in a])[::-1]
    # ('x', 1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      • 2013-04-29
      • 2018-12-05
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      相关资源
      最近更新 更多