在python中使用数字进行高效工作

时间:2013-06-25 06:55:51

标签: python python-2.7

我遇到了一些Python问题。 我用Python(topcoder,codeforces)解决了一些编程任务。有时我需要数一些东西。例如:计算字符串中的子字符串或其他内容。当我计算如下:

counter += 1

我的解决方案在某些测试中失败了。我对此进行了调查,发现我的代码应该数到200000附近。我知道python中的数字是对象。我的代码试图创建这200000个对象,因此超出了测试时间限制。在一项任务中,我能够优化算法,最终需要完全降低添加量。但在另一个中它是不可能的,我的代码失败了,因为它应该创建许多数字对象。 我的主要语言是C#,所以我想知道,我应该如何有效地处理Python数字?

我在那里找不到任何类似的问题,所以我提问。

1 个答案:

答案 0 :(得分:3)

$ python -m timeit 'counter = 0
> for _ in xrange(200000): counter += 1'
100 loops, best of 3: 9.25 msec per loop

不到10毫秒是否会为您的测试带来如此大的影响?我不这么认为。

很可能counter += 1指令瓶颈。你可能有错误的算法,或者你以错误的方式实现算法。


使用while

$ python -m timeit 'counter = 0
> while counter < 200000: counter += 1'
100 loops, best of 3: 10.5 msec per loop