-2

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

counter += 1

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

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

4

1 回答 1

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
于 2013-06-25T07:23:37.423 回答