Python 如何计算一支足球队';在给定的赛季中,s的总积分是多少?

Python 如何计算一支足球队';在给定的赛季中,s的总积分是多少?,python,numbers,points,Python,Numbers,Points,我实际上是在试图理解我在计算中是否遵循了正确的路径。 因此,有一支球队,如雷森足球俱乐部,在34周的赛季中取得如下成绩 "3,1,1,1,0,0,3,1,1,3,3,0,0,1,3,1,3,3,1,1,0,0,0,0,3,1,1,1,0,3,3,0,1,1" 这些数字不一定指定为团队收到的分数,而是代表 胜=3,平=1,负=0 如果每赢一场得3分,每平一场得1分,输一场什么也得不到,那么我对这支球队截至第34周结束的整个赛季记录的计算是: results = [3,1,1,

我实际上是在试图理解我在计算中是否遵循了正确的路径。 因此,有一支球队,如雷森足球俱乐部,在34周的赛季中取得如下成绩

"3,1,1,1,0,0,3,1,1,3,3,0,0,1,3,1,3,3,1,1,0,0,0,0,3,1,1,1,0,3,3,0,1,1"
这些数字不一定指定为团队收到的分数,而是代表

胜=3,平=1,负=0

如果每赢一场得3分,每平一场得1分,输一场什么也得不到,那么我对这支球队截至第34周结束的整个赛季记录的计算是:

results = [3,1,1,1,0,0,3,1,1,3,3,0,0,1,3,1,3,3,1,1,0,0,0,0,3,1,1,1,0,3,3,0,1,1]
print(sum(results))
它给出了44个点的输出

如果球队在34周结束时得分不到40分,他们本应降级

在这一点上,我有几个问题:

  • 有没有其他方法可以计算结果,而不必像我上面所做的那样手工将结果写在列表中

  • (可能与第一个问题有关)如果获胜、平局和失利的代表性保持不变,但每个结果得到的分数不同,该怎么办

  • 例如:

     "3,1,1,1,0,0,3,1,1,3,3,0,0,1,3,1,3,3,1,1,0,0,0,0,3,1,1,1,0,3,3,0,1,1"
    
    每场胜利(3)得5分

    每次抽签(1)得2分

    每次损失(0)等于1分

    我怎么能计算出球队的季末记录呢?我是否可以使用一个函数来接收结果作为输入,并对任何与格式匹配的输入执行此操作

    注:这是我的第一个问题。所以如果你能在取消我之前考虑这个问题,我会很感激的:
    谢谢大家。

    通过调用
    split(“,”
    ),您只需将逗号分隔的
    字符串
    转换为
    列表
    ,即可将字符串按逗号分割

    mystring = "3,1,1,1,0,0,3,1,1,3,3,0,0,1,3,1,3,3,1,1,0,0,0,0,3,1,1,1,0,3,3,0,1,1"
    mylist = mystring.split(",")
    #['3', '1', '1', '1', '0', '0', '3', '1', '1', '3', '3', '0', '0', '1', '3', '1', '3', '3', '1', '1', '0', '0', '0', '0', '3', '1', '1', '1', '0', '3', '3', '0', '1', '1']
    
    要更改胜利、平局和失败的点数,您可能需要创建一个
    dict

    winpoints, drawpoints, losepoints = 5,2,0
    scoredict = {3:winpoints, 1:drawpoints, 0:losepoints}
    
    然后,您可以生成一个新的点列表并计算总和

    newsum = sum([scoredict[int(v)] for v in mylist])
    #78
    
    在常规的
    for
    循环中,它将如下所示

    newlist = []
    for v in mylist:
        newlist.append(scoredict[int(v)])
    newsum = sum(newlist)
    

    另请参见上的堆栈溢出指南。简单地把作业扔到这里是不可接受的。仅供参考:这不是家庭作业;你可以忽略对学校政策的评论。但是,关于学习进步的其他原则仍然适用。非常感谢米奇。我得到了理想的输出。我想看看是否可以将您的newsum转换为纯for循环,但就是无法实现。这是我的尝试;我得到了列表中的最后一个值,而不是sums:
    在mylist:newsum=sum(scoredict[int(v)])print(newsum)
    我是一个新手,正在试图弄清楚为什么这个转换不起作用。如果你能给我一个线索,我将不胜感激。再次感谢,先生。我在更新的答案中加入了一个常规的for循环。看看发生了什么,试着弄清楚列表理解是如何工作的;它们非常有用,最重要的是比常规for循环快得多。如果这个答案对你有帮助,你可以接受我的答案。如果可以的话,我会尽我所能,但我是个新手。网站不让我。非常感谢你!