【问题标题】:how to find the average for a array and to store multiple values in a array如何找到数组的平均值并将多个值存储在数组中
【发布时间】:2015-03-29 15:15:09
【问题描述】:

如何将我的程序的多个结果存储在一个数组中?
对于数组中的每个人,我需要存储 3 个结果,但每次执行此操作时,程序运行时都会出错。

程序运行时我找不到3个数组中每个人的平均分。

我是 Python 新手。

import operator 
print("if form1 enter x, if form2 enter y,if form 3 enter z")
print("to view all results enter allscore")
x={"guv":1,"jane":4,"adam":5,"luiz":8,"elizabeth":9,"paul":10,"guv":3}

sorted(x.items(), key=operator.itemgetter(1), reverse=True) #sorts x from high to low

sorted(x.items()) #sorts x alphabetically

y={"adrian":0,"anna":9,"david":7,"matt":10,"micheal":5}

sorted(y.items(), key=operator.itemgetter(1), reverse=True)

sorted(y.items())

z={"gus":6,"mohammed":6,"winston":9,"barry":9,"ping":3}

sorted(z.items(), key=operator.itemgetter(1), reverse=True)

sorted(z.items()) # 

allscore={} 

allscore.update(x) # to get data from array x
allscore.update(y) # to get data from array y
allscore.update(z) # to get data from array z
#stores all data in this array 

【问题讨论】:

  • 为什么要对键列表进行排序?这不会影响字典。
  • 你也把sortedsort混淆了。
  • 这是我需要匹配的标准,因为我需要从高到低按字母顺序排序,现在我需要得到平均分

标签: python arrays sorting dictionary key-value-store


【解决方案1】:

如果要为每个用户存储多个值,可以使用tuples

scores = {
    "guv": (1, 2, 3),
    "jane": (4, 5, 6),
    "luiz": (7, 8, 9),
}

然后您可以通过以下循环获得所有用户的平均值:

for name in scores:
    average = sum(scores[name]) / len(scores[name])
    print("Average for " + name + ": " + str(average))

如果您希望能够添加分数,请改用lists

按字母顺序打印分数:

for name in sorted(scores):
    print("Scores for " + name + ": " + str(scores[name]))

用于打印从最高平均到最低平均的分数:

averages = {
    name: sum(scores[name]) / len(scores[name])
    for name in scores.keys()
}
for name in sorted(averages, key=averages.get, reverse=True):
    print("Average score for " + name + ": " + str(averages[name]))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多