m0_72744985 2023-02-16 21:01 采纳率: 90%
浏览 46
已结题

两个列表,求特别几位数的平均值

给出两个数字列表A和B,其中A包含自然数,B包含整数。编写一个函数average(A, B),计算A中元素在B中元素索引的位置上的平均值(四舍五入到小数点后一位)。然后该函数应将A中可索引元素的平均值返回给调用者。你可以假设B的元素是唯一的。
例子
假设A=[1,2,3],B=[0,1]:结果应该是(A[0]+A[1])/2=(1+2)/2=1.5

def average(A, B):
    # put your code after this line  

    # do not edit after this line

def main():
    A = list(map(float, input().split()))
    B = list(map(int, input().split()))
    
    print(average(A, B))



if __name__ == "__main__":
    main()
  • 写回答

4条回答 默认 最新

  • GISer Liu 2023-02-16 21:47
    关注

    以下是可以实现该需求的代码:

    def average(A, B):
        total = 0
        count = 0
        
        for b in B:
            if b < len(A) and b >= 0:
                total += A[b]
                count += 1
        
        if count > 0:
            return round(total/count, 1)
        else:
            return 0.0
    
    
    def main():
        A = list(map(float, input().split()))
        B = list(map(int, input().split()))
        
        print(average(A, B))
    
    
    if __name__ == "__main__":
        main()
    

    函数average(A, B)的实现思路是:遍历列表B中的元素,判断它是否可以作为索引访问列表A中的元素,如果可以,则将对应的元素值累加到total中,并将计数器count加1。最后,如果count大于0,则计算平均值并返回;否则返回0.0。

    在main()函数中,首先读取输入的列表A和B,然后调用average(A, B)函数计算平均值,并将结果打印输出。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月24日
  • 已采纳回答 2月16日
  • 创建了问题 2月16日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度