study_pythonaaa 2022-06-04 14:16 采纳率: 100%
浏览 95
已结题

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

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

img


请问错在哪里了呀

  • 写回答

2条回答 默认 最新

  • 请叫我问哥 新星创作者: python技术领域 2022-06-04 14:52
    关注

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

    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)))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月12日
  • 已采纳回答 6月4日
  • 创建了问题 6月4日