在Python中将两个数字转换为一个数字的最有效方法是什么?
数字始终在0到255之间,我已经通过Concat测试了几种方法来测试字符串并将其转换回int的几种方法,但是它们对于我的代码来说非常耗时。
例
a = 152
c = 255
d = concat(a,c)
回答:
d = 152255
这非常快:
def concat(a, b):
return 10**int(log(b, 10)+1)*a+b
它使用对数来查找第一个数字必须乘以10的次数,才能将总和用作串联
In [1]: from math import log
In [2]: a = 152
In [3]: b = 255
In [4]: def concat(a, b):
...: return 10**int(log(b, 10)+1)*a+b
...:
In [5]: concat(a, b)
Out[5]: 152255
In [6]: %timeit concat(a, b)
1000000 loops, best of 3: 1.18 us per loop
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句