从Python的字典中获取平均值

问题描述 投票:-1回答:4

例如,如果我有下一个字典,请从python字典获取平均值:

students={'Dan':(5,8,8), 'Tim':(7), 'Richard':(9,9)}

而且我想以以下形式打印字典:

results={'Dan':(7), 'Tim':(7), 'Richard':(9)}

我可以使用任何功能吗?我是python中的新编码,所以字典对我来说有点混乱。

python python-2.7 dictionary average
4个回答
1
投票

尝试:

results={k: tuple(sum(v)/len(v)) for k,v in students.items()}

0
投票

我正在尝试此操作,但意识到我们在对长度为1的元组求和时遇到问题。因此您可以通过这种方式进行。

for k, v in students.items():
    print(v)
    if (isinstance(v, int)):
        results[k] = v
    else:
        results[k] = sum(v) / len(v)

0
投票

我愿意:

result = {}
for k, v in students.items():
  if type(v) in [float, int]:
    result[k] = v
  else:
    result[k] = sum(v) / len(v)

-1
投票

pythonic解决方案是使用字典理解来创建结果字典。

def avg(l):
    return sum(l) / len(l)

results = {key: (avg(val)) for (key, val) in students.items()}
© www.soinside.com 2019 - 2024. All rights reserved.