用二维列表相关知识返回所需的元组

现有二维利说goods_list存储商品销售信息,元素为商品名称、单价和销售数量构成的元组。编写函数,以二维列表为参数,返回销售额最高和最低商品名称构成的元组。
goods_list=[('内存',100,600),('键盘',120,210),
('移动硬盘',200,520),('鼠标',108,120)]

def fun(lst):
    dic = {g[0]:g[1]*g[2] for g in lst}
    for k,v in dic.items():
        if v==max(dic.values()):
            Nmax=k
            break
    for k,v in dic.items():
        if v==min(dic.values()):
            Nmin=k
            break
    return Nmax, Nmin

goods_list=[('内存',100,600),('键盘',120,210),('移动硬盘',200,520),('鼠标',108,120)]

print(fun(goods_list))

注:如果有销售额相的出现。两行break就表示第一个满足条件的返回;如果去掉 break就是最后一个满足条件的返回

def fun(lst:list[tuple])->tuple:
    new = sorted(lst,key=lambda x:x[2])
    return (new[-1],new[0])