MST

星途 面试题库

面试题:Python中优化循环性能之列表推导式与普通循环

在Python中,假设有一个需求是生成1到1000中所有偶数的平方组成的列表。请分别用普通for循环和列表推导式实现,并分析哪种方式性能更优,为什么?
32.3万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

普通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)

性能分析

一般情况下,列表推导式性能更优。原因如下:

  1. 执行效率:列表推导式在底层由C语言实现,循环过程在解释器内部进行,执行速度更快;而普通for循环是Python字节码层面的操作,每次循环都需要进行函数调用和变量查找等额外开销。
  2. 代码简洁性:列表推导式用更简洁的代码表达相同逻辑,代码简洁意味着解释器处理的代码量相对较少,也有助于提升性能。