执行此操作的性能方面是否有任何差异:
for i in range(T):
arr = [int(arr_temp) for arr_temp in input().strip().split(' ')]
和此:
for i in range(T):
arr = input().strip().split(' ')
arr = list(map(int, arr))
如果是,哪个更好?
答案 0 :(得分:2)
根据IPython的%timeit
函数,map
有点快:
In [16]: s = ' '.join(map(str, range(1000)))
In [17]: %timeit [int(c) for c in s.split()]
10000 loops, best of 3: 171 µs per loop
In [18]: %timeit list(map(int, s.split()))
10000 loops, best of 3: 138 µs per loop
使用IPython 1.2.1和Python 3.4.3进行测试,输入大小不同(range(1000)
,range(10)
和range(100000)
)。
当然,有趣的问题是:代码的这一部分是否会减慢您的程序(假设这就是您要求的原因,而不是出于纯粹的好奇心)。与例如,阅读input
(从文件,我推测?)或对数据进行计算相比,它可能是非常微不足道的。