con*_*mer 3 python list minimum
简单的说!有这个列表说LST = [[12,1],[23,2],[16,3],[12,4],[14,5]],我想根据内部列表的第一个元素获取此列表的所有最小元素.所以对于上面的例子,答案是[12,1]和[12,4].这样做python中有什么典型的方法吗?提前感谢你.
两遍:
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)