下面是我的示例代码:
import random, time
rand_nums = []
rand_strs = []
total_num = 1000000
for i in range(total_num):
randint = random.randint(0,total_num*10)
randstr = str(randint)
rand_nums.append(randint)
rand_strs.append(randstr)
start = time.time()
for i in range(total_num-1):
b = rand_nums[i+1]>rand_nums[i]
end = time.time()
print("integer compare:",end-start) # 0.14269232749938965 seconds
start = time.time()
for i in range(total_num-1):
b = rand_strs[i+1]>rand_strs[i]
end = time.time() # 0.15730643272399902 seconds
print("string compare:",end-start)
与Python中循环的其余部分相比,在比较中花费的时间最少。实际的比较操作是在Python的标准库C代码中实现的,而循环将通过解释器执行
作为测试,您可以运行以下代码,该代码执行与字符串比较循环相同的所有操作,但不执行比较:
时间非常接近,但对我来说,字符串比较总是三个循环中最慢的:
我无法解释C++中为什么这么慢,但是在Python中,原因很简单:测试字符串中的随机字符串通常不同,所以这些情况的比较时间应该是差不多的。p>
此外,在循环控制和列表访问中不会有太多开销。如果通过
zip
点击列表来删除这些因素,您将获得更准确的度量:相关问题 更多 >
编程相关推荐