我遇到了一些Python问题。 我用Python(topcoder,codeforces)解决了一些编程任务。有时我需要数一些东西。例如:计算字符串中的子字符串或其他内容。当我计算如下:
counter += 1
我的解决方案在某些测试中失败了。我对此进行了调查,发现我的代码应该数到200000附近。我知道python中的数字是对象。我的代码试图创建这200000个对象,因此超出了测试时间限制。在一项任务中,我能够优化算法,最终需要完全降低添加量。但在另一个中它是不可能的,我的代码失败了,因为它应该创建许多数字对象。 我的主要语言是C#,所以我想知道,我应该如何有效地处理Python数字?
我在那里找不到任何类似的问题,所以我提问。
答案 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