面试题答案
一键面试普通for循环实现
result = []
for i in range(1, 1001):
if i % 2 == 0:
result.append(i ** 2)
print(result)
列表推导式实现
result = [i ** 2 for i in range(1, 1001) if i % 2 == 0]
print(result)
性能分析
一般情况下,列表推导式性能更优。原因如下:
- 执行效率:列表推导式在底层由C语言实现,循环过程在解释器内部进行,执行速度更快;而普通for循环是Python字节码层面的操作,每次循环都需要进行函数调用和变量查找等额外开销。
- 代码简洁性:列表推导式用更简洁的代码表达相同逻辑,代码简洁意味着解释器处理的代码量相对较少,也有助于提升性能。