如何根据嵌套列表中内部列表的第一个元素获取所有最小元素?

con*_*mer 3 python list minimum

简单的说!有这个列表说LST = [[12,1],[23,2],[16,3],[12,4],[14,5]],我想根据内部列表的第一个元素获取此列表的所有最小元素.所以对于上面的例子,答案是[12,1][12,4].这样做python中有什么典型的方法吗?提前感谢你.

ken*_*ytm 5

两遍:

minval = min(LST)[0]
return [x for x in LST if x[0] == minval]
Run Code Online (Sandbox Code Playgroud)

一遍:

def all_minima(iterable, key=None):
  if key is None: key = id
  hasminvalue = False
  minvalue = None
  minlist = []
  for entry in iterable:
     value = key(entry)
     if not hasminvalue or value < minvalue:
        minvalue = value
        hasminvalue = True
        minlist = [entry]
     elif value == minvalue:
        minlist.append(entry)
  return minlist

from operator import itemgetter
return all_minima(LST, key=itemgetter(0))
Run Code Online (Sandbox Code Playgroud)