【问题标题】:how to calculate average dictionary in one function如何在一个函数中计算平均字典
【发布时间】:2020-12-29 12:35:39
【问题描述】:

我有以下字典:

data1 = {'data2' : [70, 70, 70, 100, 100, 100, 120, 120, 150, 150],
         'data3' : [333, 70, 11, 100, 100, 100, 133, 120, 150, 13]}

我有第一个代码

def function_average(data):
    total = {}
    for k, v in data.items():
        total[k] = sum(v) / float(len(v))
    return total
print(function_average(data1))

输出

{'data2': 105.0, 'data3': 113.0}

第二个代码:

def function_average(data):
    total = 0
    for item in data:
        total += item
    avg = total/len(data)
    return avg

def cal_average(data):
    for key in data.keys():
        print ("dictionary",key)
        print (function_average(data[key]))
cal_average(data1)

输出

dictionary data2
105.0
dictionary data3
113.0

我想做一个代码,但输出和第二个代码一样。你能帮帮我吗?

【问题讨论】:

    标签: python-3.x function dictionary


    【解决方案1】:

    你可以这样做:

    data1 = {'data2' : [70, 70, 70, 100, 100, 100, 120, 120, 150, 150],
             'data3' : [333, 70, 11, 100, 100, 100, 133, 120, 150, 13]}
    averages = [(k, sum(v)/len(v)) for k, v in data1.items()]
    for k, v in averages:
        print("dictionary", k, f"\n{v}")
    

    【讨论】:

    • 谢谢您的回答,先生。对不起,先生,您能逐行解释代码吗?目前我只是在学习 pyhton,它对我来说并不理解。我英语说得不太好,但我会一点一点的
    • 当然。对于这一行[(k, sum(v)/len(v)) for k, v in data1.items()],您迭代字典的项目(k -> key,v -> value = list),并使用 list-comprehension,存储一个包含键和 list/len 之和的元组,即字典中的平均值。之后,您只需先打印 key,然后是 f"\n{v}",这是一个由换行符和平均值组成的 f 字符串(阅读它)。
    • 谢谢先生,祝你永远幸福,成功
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    • 2021-09-07
    相关资源
    最近更新 更多