实验对比python中的内置函数len()耗时

本文通过实验对比了Python中len()函数在while和for循环中的调用频率及其对性能的影响,发现while循环多次调用耗时明显,而for循环仅在初次调用后稳定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

c++中的vector的size()函数在多次调用时比较耗时,闲来无事,做个小实验测试一下python中len()函数的耗时

import time
N = 100000000
idx = 0
nums = ['0' for _ in range(N)]

idx = 0
time1 = time.time()
while idx < len(nums):
    idx += 1
time2 = time.time()
print(time2 - time1)
"""
输出:13.739784240722656
"""
idx = 0
time1 = time.time()
while idx < N:
    idx += 1
time2 = time.time()
print(time2 - time1)
"""
输出:8.432595014572144
"""
idx = 0
time1 = time.time()
for _ in range(len(nums)):
    idx += 1
time2 = time.time()
print(time2 - time1)
"""
输出:8.185671329498291
"""
idx = 0
time1 = time.time()
for _ in range(len(nums)):
    idx += 1
time2 = time.time()
print(time2 - time1)
"""
输出:8.589096546173096
"""

可以看到,while循环中和for循环的结果差别较大:
while循环中每循环一次都会调用一次len()函数,循环1亿次,大概比不调用len()的情况下多耗时70%,尽管说len()的复杂度是O(1),但是多次调用仍然耗时较大。
for循环中两次的结果差别不大,原因应该是for循环只会在调用len()一次,调用生成一个class ‘range’之后之后每次循环都不会再调用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值