首页 > 解决方案 > 我写了以下两个代码。哪个代码合适?

问题描述

user_input = (int(e) for e in input().split())
a, b, c = user_input

或者

a, b, c = map(int, input().split())

我想知道上面哪个代码是安全、快速和高效的内存使用。请给我你的意见。

标签: python

解决方案


对于理解和地图之间的一般比较,请参阅 stackoverflow 上的这个优秀链接

您可以通过随机整数模拟输入,然后将两个代码循环运行 10 万次,您将获得明显的性能差异。

下面是代码及其输出

import time
import random

random.seed(123)

start_time = time.time()
for i in range(100000):
    a, b, c = (int(e) for e in " ".join([str(random.randint(-10000000,10000000)) for i in range(3)]).split(" "))
end_time = time.time()

print("time taken method 1 is ", end_time - start_time)

start_time = time.time()
for i in range(100000):
    a, b, c = map(int, " ".join([str(random.randint(-10000000,10000000)) for i in range(3)]).split(" "))
end_time = time.time()
print("time taken method 2 is ", end_time - start_time)

输出是

time taken method 1 is  1.182307481765747
time taken method 2 is  1.091458797454834

在这种情况下,两者都非常接近,但地图要好一些。然而,这一点对你来说可能是至关重要的。你会更清楚。


推荐阅读