如何将现有Python函数改写为更简洁易读的列表推导式格式?
改写方案
完全可以用列表推导式实现,原代码的逻辑是给每个元素加上它的1-based序号(第一个元素加1,第二个加2,以此类推),配合Python内置的enumerate函数就能快速实现:
改写后的函数版(和原功能完全一致)
lst = [-3,10.5,100] def add_index(nums): return [num + idx + 1 for idx, num in enumerate(nums)] add_index(lst)
不需要额外封装函数的一行实现:
lst = [-3,10.5,100] res = [num + idx + 1 for idx, num in enumerate(lst)]
逻辑说明
enumerate()会同时返回遍历的0起始索引和对应元素,索引加1就对应原代码里循环自增的add变量- 改写后不需要额外定义临时列表和累加变量,代码行数大幅减少,逻辑更直观,运行结果和原代码完全一致,输出为
[-2, 12.5, 103]
内容的提问来源于stack exchange,提问作者Averyf00350
相关产品推荐
相关产品推荐

