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], [\
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))