面试题答案
一键面试使用普通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)
列表生成式对迭代效率有提升的原因
- 简洁高效:列表生成式在Python内部以C语言的速度执行,代码更加紧凑,减少了Python解释器在循环控制语句上的开销。
- 优化的底层实现:Python对列表生成式进行了底层优化,直接在创建列表的过程中完成筛选和赋值,避免了在循环体中频繁调用列表的
append
方法,减少了函数调用开销。