最佳答案
当比较浮点数和整数时,一些值对的计算时间要比类似大小的其他值长得多。
例如:
>>> import timeit
>>> timeit.timeit("562949953420000.7 < 562949953421000") # run 1 million times
0.5387085462592742
但是如果浮点数或整数变小或变大一定数量,比较运行得更快:
>>> timeit.timeit("562949953420000.7 < 562949953422000") # integer increased by 1000
0.1481498428446173
>>> timeit.timeit("562949953423001.8 < 562949953421000") # float increased by 3001.1
0.1459577925548956
更改比较操作符(例如使用==
或>
代替)不会以任何明显的方式影响时间。
这与仅仅无关,因为选择更大或更小的值可以导致更快的比较,所以我怀疑这是由于一些不幸的位排列方式。
显然,比较这些值对于大多数用例来说已经足够快了。我只是好奇,为什么Python在处理某些值对时比处理其他值对时更困难。