Get max value from a list with lists?

前端 未结 7 534
南笙
南笙 2020-12-09 11:32

So I have a list that contains several list which all have three strings first, then one float number, like:

resultlist = [[\"1\", \"1\", \"a\", 8.3931], [\         


        
7条回答
  •  無奈伤痛
    2020-12-09 12:04

    If you want the index too you can use enumerate with operator.itemgetter using map:

    from operator import itemgetter
    def max_val(l, i):
        return max(enumerate(map(itemgetter(i), l)),key=itemgetter(1)))
    

    Which will return a tuple of the max with the index:

    In [7]: resultlist = [["1", "1", "a", 8.3931], ["1", "2", "b", 6.3231], ["2", "1", "c", 9.1931]]
    
    In [8]: max_val(resultlist, -1)
    Out[8]: (2, 9.1931)
    

    Or just a regular gen exp:

    from operator import itemgetter
    def max_val(l, i):
        return max(enumerate(sub[i] for sub in l), key=itemgetter(1))
    

提交回复
热议问题