In [1]: %timeit [int(x) for x in '1234567']
100000 loops, best of 3: 4.69 µs per loop
In [2]: %timeit map(int, '1234567')
100000 loops, best of 3: 4.38 µs per loop
# Create a lookup dict for each digit, instead of using the builtin 'int'
In [5]: idict = dict(('%d'%x, x) for x in range(10))
# And then, for each digit, just look up in the dict.
In [6]: %timeit [idict[x] for x in '1234567']
1000000 loops, best of 3: 1.21 µs per loop
一种方法是使用地图。
map(int, "1234567")
您可以使用
map
函数:或
range
:与范围结果相同:
再没有比这更像Python的方法了。另外,不管你喜欢地图理解还是列表理解都是个人喜好的问题,但是更多的人似乎更喜欢列表理解。你知道吗
但是,对于您正在做的事情,如果这是在性能敏感的代码中,请从旧的程序集例程中获取一个页面并使用dict,它将比
int
更快,也不会更复杂:相关问题 更多 >
编程相关推荐