如何让这段Python代码更简洁优雅、符合Pythonic编码风格?
Python代码优化方案
你的代码核心逻辑是读取角色属性字典的所有数值,计算平均值后取整输出,原写法存在不少冗余逻辑,以下是符合Pythonic风格的优化方案。
原代码的冗余问题
- 变量
numbyO属于完全无效的代码:遍历字典取值的过程根本不需要维护索引,整个自增计数逻辑没有任何作用 - 手动循环逐键取值、append到列表的写法属于重复造轮子,Python字典原生提供了直接取所有值的方法
- 若仅为计算均值引入numpy属于不必要的依赖(如果项目本身已经在用numpy可以保留)
- 变量命名不符合Python通用的PEP8规范,驼峰命名不是Python推荐的变量命名风格
优化代码
方案1:保留numpy依赖的极简写法
import numpy char_stats = {'health': 50, 'damage': 10.1} print(int(numpy.mean(list(char_stats.values()))))
方案2:无第三方依赖的纯Python写法
如果没有其他numpy使用需求,完全可以用Python内置函数实现,不需要安装第三方包,代码更轻量:
char_stats = {'health': 50, 'damage': 10.1} values = list(char_stats.values()) print(int(sum(values) / len(values)))
优化细节说明
- 统一使用蛇形命名法(如
char_stats替换原charStats),符合PEP8编码规范 - 删除所有无意义的中间变量、冗余计数逻辑,代码行数压缩70%以上
- 用
dict.values()直接获取字典所有值,替代手动循环取值的写法,执行效率更高、可读性更强 - 优化后的代码不需要随字典键值对的增减修改逻辑,后续新增属性(比如护甲、暴击率)时可以直接计算,维护成本更低
内容的提问来源于stack exchange,提问作者UserThatProgram'sHorribly
相关产品推荐
相关产品推荐

