关于#python#的问题:现有二维列表goods_list存储商品销售信息,元素为商品名称、单价和销售数量构成的元组

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

img


请问错在哪里了呀

错误比较多,除了少个括号:

  1. goods_list不是列表名吗?你又用这个名字定义了函数?
  2. 题目要求“编写函数,以二维列表为参数”
  3. 在函数goods_list里又调用了函数自己?没有必要用递归吧
  4. 即使要调用自己,传参也不正确,*amount表示不定长形参,不能再使用关键字amount去传参
  5. 销售额等于单价乘以销售数量,没看见计算啊?
  6. 题目要求返回,应该是用return,不用print

修改如下:

def revenue(lst):
    ranking = {}
    for i in lst:
        ranking[i] = i[1]*i[2]
    max_amount = max(ranking.keys(), key=lambda x: ranking[x])
    min_amount = min(ranking.keys(), key=lambda x: ranking[x])
    return max_amount, min_amount

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

少了个括号

img