MST

星途 面试题库

面试题:Python数字序列迭代效率优化之列表生成式

在Python中,已知有一个需求,要生成一个包含1到100中所有偶数的列表,通常可以使用for循环来实现。请分别用普通for循环和列表生成式来完成此任务,并说明为什么列表生成式在这种场景下可能对迭代效率有提升。
31.1万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

使用普通for循环

result = []
for i in range(1, 101):
    if i % 2 == 0:
        result.append(i)
print(result)

使用列表生成式

result = [i for i in range(1, 101) if i % 2 == 0]
print(result)

列表生成式对迭代效率有提升的原因

  1. 简洁高效:列表生成式在Python内部以C语言的速度执行,代码更加紧凑,减少了Python解释器在循环控制语句上的开销。
  2. 优化的底层实现:Python对列表生成式进行了底层优化,直接在创建列表的过程中完成筛选和赋值,避免了在循环体中频繁调用列表的append方法,减少了函数调用开销。