Python中基于列表末尾元素累加常数追加元素的实现优化问询
优化Python列表追加重复元素的代码
场景需求:已有初始列表,需多次向列表末尾追加元素,每次取列表最后一个元素加上固定常数得到新元素,重复该操作指定次数。
你的原代码可以得到正确结果,但存在未使用的变量items,而且索引计算没必要这么复杂,这里提供几种更简洁直观的优化方案:
原代码回顾
starting_list = [1, 5, 3] increment = 7 additional_items = 5 for index, items in enumerate(range(additional_items), start=3): starting_list.append(starting_list[index - 1] + increment) print(starting_list)
输出:
[1, 5, 3, 10, 17, 24, 31, 38]
优化方案1:直接循环取最后一个元素
这是最适合新手的写法,用starting_list[-1]直接获取列表最后一个元素,无需计算索引;用_表示循环中不需要用到的变量,符合Python惯例:
starting_list = [1, 5, 3] increment = 7 additional_items = 5 for _ in range(additional_items): starting_list.append(starting_list[-1] + increment) print(starting_list)
优化方案2:生成新列表(不修改原列表)
如果不想改动原始列表,可以先复制原列表再操作,避免意外修改原数据:
starting_list = [1, 5, 3] increment = 7 additional_items = 5 new_list = starting_list.copy() for _ in range(additional_items): new_list.append(new_list[-1] + increment) print(new_list)
两种方案的输出和原代码完全一致,而且代码更简洁易读,没有多余的未使用变量。
内容的提问来源于stack exchange,提问作者Radie
相关产品推荐
相关产品推荐

