鱼C论坛

 找回密码
 立即注册
查看: 656|回复: 3

[已解决]求list中>=50和<50的平均值,两个数组成一个新list,我写了前面的

[复制链接]
发表于 2020-5-19 22:46:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
定义get_fail_pass_average()函数,该函数将一个整数列表作为参数传递,其中每个整数表示一个满分为100的标记。该函数返回一个Python列表,该列表由所有小于50的分数的平均值组成,后跟所有等于或大于50的标记的平均值(两个平均值均四舍五入到最接近的整数)。如果没有失败标记,则平均失败标记应设置为-1,如果没有通过标记,则平均通过标记应设置为-1

Test1:print(get_fail_pass_average([63, 65, 33]))
result1:[33, 64]

Test2:print(get_fail_pass_average([63, 62, 100, 100]))
result2:[-1, 81]

Test3:print(get_fail_pass_average([33, 42, 20, 10]))
result3:[26, -1]

我的代码:
def get_fail_pass_average(list):
    new_list1=[]
    new_list2=[]
    for num in range(len(list)):
        if list[num]<50:
            new_list1.append(list[num])
            if len(new_list1)>0:               
                list1_average=round(sum(new_list1)/len(new_list1))
               
            if len(new_list1)==0:
                list1_average=-1
    return list1_average

这上面小于50的数字的平均值,我也知道大于等于50的怎么求 ,换个符号加elif,但是两个合在一起我不太清楚怎么合并,然后组成一个新的list
最佳答案
2020-5-19 23:08:50
  1. def get_fail_pass_average(list):
  2.     new_list1=[]
  3.     new_list2=[]
  4.     for num in range(len(list)):
  5.         if list[num]<50:
  6.             new_list1.append(list[num])
  7.         else:
  8.             new_list2.append(list[num])
  9.     average=[-1,-1]
  10.     if len(new_list1)>0:               
  11.         average[0]=round(sum(new_list1)/len(new_list1))
  12.     if len(new_list2)>0:
  13.         average[1]=round(sum(new_list2)/len(new_list2))
  14.     return average
  15. print(get_fail_pass_average([63, 65, 33]))
  16. print(get_fail_pass_average([63, 62, 100, 100]))
  17. print(get_fail_pass_average([33, 42, 20, 10]))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-19 23:08:50 | 显示全部楼层    本楼为最佳答案   
  1. def get_fail_pass_average(list):
  2.     new_list1=[]
  3.     new_list2=[]
  4.     for num in range(len(list)):
  5.         if list[num]<50:
  6.             new_list1.append(list[num])
  7.         else:
  8.             new_list2.append(list[num])
  9.     average=[-1,-1]
  10.     if len(new_list1)>0:               
  11.         average[0]=round(sum(new_list1)/len(new_list1))
  12.     if len(new_list2)>0:
  13.         average[1]=round(sum(new_list2)/len(new_list2))
  14.     return average
  15. print(get_fail_pass_average([63, 65, 33]))
  16. print(get_fail_pass_average([63, 62, 100, 100]))
  17. print(get_fail_pass_average([33, 42, 20, 10]))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-19 23:14:45 | 显示全部楼层

懂了!!谢谢大佬!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 01:11:12 | 显示全部楼层
MIQIWEI 发表于 2020-5-19 23:14
懂了!!谢谢大佬!!

不客气!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 21:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表