我有一串具有以下格式的数据:xpos-ypos-zoom(即 8743-12083-15),我想将其拆分并存储在变量 xpos、ypos 和 Zoom 中。由于我需要对这些数字进行一些计算,因此我想从一开始就将它们转换为整数。目前,我执行此操作的方法是使用以下代码:
file = '8743-12083-15'
xval, yval, zoom = file.split("-")
xval = int(xval)
yval = int(yval)
在我看来应该有一种更有效的方法来做到这一点。有任何想法吗?
我最初的建议是列表理解。
test = '8743-12083-15'
lst_int = [int(x) for x in test.split("-")]
EDIT:
至于哪个效率最高(按 CPU 周期),应该始终进行测试。
对我的 Python 2.6 安装进行的一些快速测试表明map可能是这里最有效的候选者(从值分割的字符串构建整数列表)。请注意,差异非常小,除非您执行数百万次(并且这是一个经过验证的瓶颈),否则这并不重要......
def v1():
return [int(x) for x in '8743-12083-15'.split('-')]
def v2():
return map(int, '8743-12083-15'.split('-'))
import timeit
print "v1", timeit.Timer('v1()', 'from __main__ import v1').timeit(500000)
print "v2", timeit.Timer('v2()', 'from __main__ import v2').timeit(500000)
> output v1 3.73336911201
> output v2 3.44717001915
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)