Python-需要更长的时间,转换为字符串或转换为float

时间:2019-01-24 20:00:38

标签: python

有人知道将字符串转换为float所需的时间是否比通常将float转换为string所需的时间更长吗?

我使用timeit运行了一个单一的场景,似乎在许多迭代中,浮动字符串的速度更快。但是我不知道这是否只是因为我正在测试的一种方案/价值。

print(timeit.timeit('float("10.2222345")', number=1000000))
print(timeit.timeit('str(10.2222345)', number=1000000))

0.20839183280516668
0.5629733898818098

1 个答案:

答案 0 :(得分:4)

以防万一,计时:

php artisan tinker

我坚信,差异来自浮点数和字符串之间的内存差异,在大多数解释语言中,非渐近(您的大O表示法)性能取决于需要重新分配多少内存和收集GC。 python中的字符串并不意味着内存有效(首先)

%timeit float("10.2222345")
181 ns ± 7.07 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

%timeit str(10.2222345)
590 ns ± 3.07 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

%timeit f'{10.2222345}'  # thx Jaba for pointing this
12 ns ± 0.145 ns per loop (mean ± std. dev. of 7 runs, 100000000 loops each)