我对列表理解的最初建议。
test = '8743-12083-15'
lst_int = [int(x) for x in test.split("-")]
至于哪个是最有效的(cpu-cyclewise),则应始终对其进行测试。在我的Python 2.6安装上进行的一些快速测试表明,这里的 可能是最有效的候选者(从值分隔的字符串中构建整数列表)。请注意,差异是如此之小,以至于在您进行数百万次操作之前这并不重要(这是一个公认的瓶颈)…
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