不使用import与round函数计算元组列表内各元组的平均值并格式化输出
实现方法
核心逻辑:不使用round函数的前提下,可通过数学计算法或字符串格式化法实现保留两位小数的需求,最终将结果转换为元组输出即可。
方法1:数学计算实现四舍五入(推荐,直接输出数值类型)
通过乘100把小数位提到整数位,加0.5后取整实现四舍五入,再除以100还原小数位,全程不需要引入round函数。
# x为你已定义的输入元组列表变量,无需修改 res = tuple(int(sum(t)/len(t)*100 + 0.5)/100 for t in x) print(res)
如果仅需要截断两位小数(不四舍五入),去掉+ 0.5即可:
res = tuple(int(sum(t)/len(t)*100)/100 for t in x)
方法2:字符串格式化实现
利用Python内置的字符串格式化能力指定保留两位小数,无需使用round函数,适合需要严格展示两位小数(比如3.3显示为3.30)的场景:
# 输出为浮点类型的元组 res = tuple(float(f"{sum(t)/len(t):.2f}") for t in x) print(res)
效果验证
针对你给出的输入样例[(15.5, 8, 16.46), (7, 56, 4.21884, -1.4, 8.3), (4.5,-2,7.4)],上述代码输出为(13.32, 14.82, 3.3),符合需求。如果你示例中的3.33为笔误,可根据实际四舍五入规则调整计算逻辑即可。
内容的提问来源于stack exchange,提问作者xxcoder
相关产品推荐
相关产品推荐

