更新了问题和代码!2021年1月30日
这个问题合乎逻辑地出现在这个问题之后-How to find a separate attribute among the records and form a separate collection on it?
我需要计算每组的平均分数。 在用户@itprorh66建议的代码中,我添加了一个计算平均分数的公式(它是有效的)和一个分数的条件搜索操作符
先生@itprorh66
我决定修改一下你的代码,试着自己解决我的问题。但到目前为止还没有成功
此代码块正在工作
def srtgr(self):
counthrees=0
countfours=0
countfives=0
midl_average=0
gl=dict() #Dictionary for the group
for s in studinfos:
sd=gl.pop(s.numbgroup,dict())
sd[s.surn]=[s.markgeometry,s.markalgebra,s.markinformatika]
gl[s.numbgroup]=sd
for k,v, in gl.items():
s=f'Group: {k}: \n'
for stdn,grds in v.items():
s+=f' {stdn}\t{grds[0]},{grds[1]},{grds[2]} \n'
print(s)
这是def srtgr
中的第二部分。在这个代码块中,我试图计算每组的分数(3、4和5),然后找到每组的平均分数。在循环的帮助下,我开始遍历字典,在分支操作符的帮助下,我开始计算每组的分数,但这就是我在编写这段代码时的想法。在现实中,没有什么是开始的,也没有什么是不重要的
for grds in gl.items():
if grds.markgeometry==3:
counthrees+=1
if grds.markalgebra==3:
counthrees+=1
if grds.markinformatika==3:
counthrees+=1
if grds.markgeometry==4:
countfours+=1
if grds.markalgebra==4:
countfours+=1
if grds.markinformatika==4:
countfours+=1
if grds.markgeometry==5:
countfives+=1
if grds.markalgebra==5:
countfives+=1
if grds.markinformatika==5:
countfives+=1
midl_average = (counthrees+countfours+countfives)/3
for kk,grds1 in gl.items():
grds=f'Group: {kk}: {grds1}\n'
print(grds)
print(*sorted(gl, key = midl_average, reverse = True))
输入数据
我的名声是litlle,我不能从我的计算机中添加图片,我发送链接,我的输入数据在哪里,我在类中添加了什么,以及我的对象类集合如何显示在控制台中。和组的分离
如何使平均成绩显示在每组学生名单的底部? 或者只是计算每组的平均分数,然后输入另一本字典
我算出了值的排序在字典里
我试着制作第二本字典,把各组放在那里,然后在一个单独的评估单元中进行计算——结果不起作用。 然后我读到,在Python中,您可以将字典添加到字典中。 因此,我试图将现有词典添加到新词典中,但不知道如何继续。 因为无论如何都必须计算分数
不能使用任何帮助器类,只能使用一个类
dict.items()返回字典中的键值对。根据代码
v
字典有两种数据我最好的猜测是你不想要那本字典里的第二类东西。我不知道红球的东西应该做什么,但是现在你把它做成一个空列表,放在一个字典里,里面有完全不同的信息,然后用一个浮点数覆盖这个变量,而不会弄乱之前的空列表
另外,不要害怕使用冗长的变量名。当我们需要计算出k和v是什么时,很难遵循代码。顺便说一句,我们包括了您,即使使用您自己的代码,错误的命名也会使诊断错误变得更加困难
相关问题 更多 >
编程相关推荐