【问题标题】:How to get the tuple having the minimum value in a certain item? [duplicate]如何获得某个项目中具有最小值的元组? [复制]
【发布时间】:2019-01-24 02:28:33
【问题描述】:
results = [({'age': 1},      30), 
           ({'weight': 80},   5), 
           ({'label': 'abc'}, 7)]

如上所示,我有一个元组列表。有没有什么优雅的方法可以得到第二项最小的元组?

更一般地说,如果我需要获得具有最小eval(2nd item) 的元组? eval 是一个转换函数。

【问题讨论】:

    标签: python python-3.x tuples min


    【解决方案1】:

    您可以将minkey arg 与operator.itemgetter 一起使用:

    from operator import itemgetter
    
    results = [({'age': 1},      30), 
               ({'weight': 80},   5), 
               ({'label': 'abc'}, 7)]
    
    print(min(results, key=itemgetter(1)))
    

    输出:

    ({'weight': 80}, 5)
    

    【讨论】:

    • 漂亮,作为我的第二个问题,我想它就像min(results, key=lambda t: t[1]**2)
    • 您也可以使用lambda 函数代替itemgetter 并通过将itemgetter(1) 替换为lambda x: x[1] 来避免导入
    • 感谢 Jebby,我只是在评论相同的内容:)
    • @Jebby 是的,但效率较低。 itemgetter 快一点。
    • @Indominus 是的,你可以做min(results, key=lambda t: yourfunc(t[1]))。你定义yourfunc
    猜你喜欢
    • 2021-08-28
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 2013-06-11
    • 2013-09-20
    • 1970-01-01
    相关资源
    最近更新 更多