Python转换为字符串或转换

2024-04-19 07:38:12 发布

您现在位置:Python中文网/ 问答频道 /正文

有人知道把一个字符串转换成float比把float转换成字符串要花更长的时间吗?你知道吗

我使用timeit运行了一个单一的场景,似乎经过多次迭代,字符串的浮动速度更快。但我不知道这是否只是因为我测试的一个场景/值。你知道吗

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

0.20839183280516668
0.5629733898818098

Tags: 字符串number时间场景float速度printstr
1条回答
网友
1楼 · 发布于 2024-04-19 07:38:12

以防万一,时间安排:

%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)

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

>>> import sys
>>> sys.getsizeof(10.2222345)
24

>>> sys.getsizeof("10.2222345")
59

相关问题 更多 >