如何在不引入库的前提下优化Python立方数打印代码并仅用单个列表?
用单个列表高效实现指定范围数字的立方值打印(无第三方库)
原代码的问题
你的代码创建了两个独立列表分别存储数字和对应的立方值,既浪费内存,又需要通过索引遍历,效率和可读性都有优化空间。
优化方案(满足单个列表要求)
可以用单个列表存储(数字, 立方值)的元组,通过一次列表推导式完成创建,再直接遍历列表元素打印,无需索引操作:
# 单个列表存储数字与对应立方值的元组 num_cubes = [(x, x**3) for x in range(1, 11)] # 直接遍历列表中的元组元素打印 for num, cube in num_cubes: print(f"The cube of {num} is {cube}.")
优化后的优势
- 内存更高效:仅创建一个列表,避免了原代码中
num列表的冗余存储,元组的内存开销远小于两个独立列表的总和。 - 遍历速度更快:直接迭代列表元素,省去了索引访问时的边界检查等额外操作,比原代码的索引遍历更高效。
- 可读性更强:代码逻辑直观,无需通过索引关联两个列表的元素。
极致优化(若无需存储立方值)
如果你的需求只是打印而不需要保留所有立方值,甚至可以省略列表,直接在循环中计算并打印,内存占用降到最低:
# 无需存储,直接计算并打印 for x in range(1, 11): print(f"The cube of {x} is {x**3}.")
但此方案不符合你“仅通过单个列表实现”的要求,仅作为额外参考。
内容的提问来源于stack exchange,提问作者WoofyZoom
相关产品推荐
相关产品推荐

