gpt4 book ai didi

python - 性能 : (Compare string) vs (convert to int)

转载 作者:太空狗 更新时间:2023-10-30 00:44:31 24 4
gpt4 key购买 nike

大家好:我是 Stack Overflow 的新手,也是 python 的新手,但我已经编写代码多年,想知道以下哪项性能更好。

假设我已经从 os 加载了 envioron,并且环境中的标志保证为“0”或“1”。

if environ["Flag"] == "1":
do_something

if int(environ["Flag"]) == 1:
do something

乍一看,它看起来像转换为 int,然后比较会因为转换而变慢,但是,我知道字符串比较也可能很慢。

有没有人检查过这个?

谢谢,马克。

最佳答案

In [44]: timeit int("1") == 1
1000000 loops, best of 3: 380 ns per loop

In [44]: timeit "1" == "1"
10000000 loops, best of 3: 36.5 ns per loop

转换为 int 总是比较慢,这很有意义,您从一个字符串开始,然后转换为一个 int,而不是仅仅创建一个字符串。

转换是成本最高的部分:

In [45]: timeit 1
100000000 loops, best of 3: 11.9 ns per loop

In [46]: timeit "1"
100000000 loops, best of 3: 11 ns per loop

In [47]: timeit int("1")
1000000 loops, best of 3: 366 ns per loop

使用 a = "1" 创建字符串与使用 a = 1 b = str(1) 是有区别的,您可能会感到困惑`.

In [3]: a = 1

In [4]: timeit str(b)
10000000 loops, best of 3: 135 ns per loop

使用python2.7计时,使用python 3的区别差不多。

输出来 self 的 ipython 终端,使用 ipython magic timeit function

关于python - 性能 : (Compare string) vs (convert to int),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28490477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com