如何对字典中各键对应坐标列表的X、Y值分别计算平均值?
坐标平均值计算解决方案
首先给出完整可运行的Python代码,适配你提供的字典结构:
# 定义你的坐标字典,可替换为你实际的数据 coord_dict = { 3: [['7', '16'], ['72', '48'], ['36', '52'], ['75', '36'], ['52', '28'], ['76', '44'], ['56', '35'], ['15', '21'], ['88', '32'], ['61', '34'], ['94', '12'], ['71', '59'], ['25', '16'], ['62', '1'], ['16', '32'], ['71', '4'], ['42', '32'], ['37', '49'], ['49', '34'], ['3', '5'], ['49', '40'], ['40', '53'], ['57', '48'], ['10', '9'], ['97', '3']], 2: [['71', '84'], ['32', '74'], ['51', '85'], ['55', '96'], ['34', '64'], ['76', '75'], ['54', '100'], ['60', '85'], ['40', '78'], ['78', '91'], ['100', '98'], ['42', '77'], ['39', '60'], ['38', '77'], ['66', '67'], ['66', '76'], ['86', '68']], 1: [['11', '69'], ['10', '74'], ['10', '75'], ['14', '77'], ['2', '60'], ['14', '99'], ['10', '60'], ['8', '87']] } # 计算逻辑 avg_result = {} for key, coord_list in coord_dict.items(): # 统计总X、总Y和坐标数量 sum_x = sum(int(coord[0]) for coord in coord_list) sum_y = sum(int(coord[1]) for coord in coord_list) count = len(coord_list) # 计算平均值,可根据需要调整保留小数位数 avg_result[key] = { "x_avg": round(sum_x / count, 2), "y_avg": round(sum_y / count, 2) } # 打印结果 for k, v in avg_result.items(): print(f"键{k}:X坐标平均值{v['x_avg']},Y坐标平均值{v['y_avg']}")
代码说明
- 直接通过
dict.items()遍历字典,可同时获取键和对应的坐标列表,无需额外通过键查值 - 用生成器表达式配合
sum()方法做求和,写法更简洁,执行效率和普通循环一致 - 示例中坐标值为字符串类型,所以先转
int再计算,若你的实际数据有小数,替换为float即可 - 用
round()方法保留两位小数,可根据需求修改保留位数或者去掉该方法保留原始精度
运行输出示例
键3:X坐标平均值48.04,Y坐标平均值28.16
键2:X坐标平均值58.47,Y坐标平均值80.53
键1:X坐标平均值9.88,Y坐标平均值75.12
内容的提问来源于stack exchange,提问作者Samantha Clark
相关产品推荐
相关产品推荐

