【问题标题】:Getting the tuple with max second component value [duplicate]获取具有最大第二个分量值的元组 [重复]
【发布时间】:2014-12-31 07:35:42
【问题描述】:

我有一个清单:

l = [("abc",0.9), ("abc1",0.95), ("abc2",0.8), ("abc3",0.9)]

我想得到第二个元组值最高的元组, 即

("abc1", 0.95)

实现这一目标的最佳方法是什么?

【问题讨论】:

    标签: python python-2.7 tuples max


    【解决方案1】:

    您可以将key 参数用于max() function

    max(l, key=lambda i: i[1])
    

    您也可以在此处使用operator.itemgetter() 生成可调用对象:

    from operator import itemgetter
    max(l, key=itemgetter(1))
    

    演示:

    >>> l=[("abc",0.9),("abc1",0.95),("abc2",0.8),("abc3",0.9)]
    >>> max(l, key=lambda i: i[1])
    ('abc1', 0.95)
    >>> from operator import itemgetter
    >>> max(l, key=itemgetter(1))
    ('abc1', 0.95)
    

    【讨论】:

      【解决方案2】:

      在内置的max 函数中使用key 关键字参数:您可以向它传递一个函数,该函数查看元组索引1(即第二个元素)处的元素:

      >>> max(l, key=lambda x: x[1])
      ("abc1", 0.95)
      

      【讨论】:

        【解决方案3】:

        您可以简单地使用max 函数,将key 参数作为一个函数,可以给出每个元组的第二个元素进行比较,像这样

        print max(l, key=lambda x: x[1])
        # ('abc1', 0.95)
        

        否则你可以使用内置的itemgetter 操作符,像这样

        from operator import itemgetter
        print max(l, key=itemgetter(1))
        # ('abc1', 0.95)
        

        【讨论】:

          猜你喜欢
          • 2018-11-21
          • 2012-10-13
          • 2016-02-18
          • 1970-01-01
          • 2019-08-14
          • 2021-08-03
          • 2019-08-05
          • 2016-07-27
          • 1970-01-01
          相关资源
          最近更新 更多