社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

rbp

rbp 最近创建的主题
rbp 最近回复了
15 年前
回复了 rbp 创建的主题 » 如何通过一个简单的循环获得非常快的python

[编辑以反映新发现并在SPOJ上传递代码]

通常,当使用python进行spoj时:

  • 不要使用“原始输入”,使用sys.stdin.readlines()。这会对大输入产生影响。另外,如果可能的话(也就是说,对于这个问题),立即读取所有内容(sys.stdin)。readlines(),而不是逐行读取(“for line in sys.stdin…”)。
  • 同样,不要使用“print”,使用sys.stdout.write()-并且不要忘记“\n”。当然,这只在多次打印时才相关。
  • 正如S.Mark建议的,使用psyco。它既适用于Spoj的python2.5也适用于python2.6(测试一下,它就在那里,而且很容易发现:使用psyco的解决方案通常有大约35MB的内存使用偏移)。这很简单:只需在“import sys”:import psyco;psyco.full()之后添加即可。
  • 正如Justin所建议的,将代码(psyco咒语除外)放在一个函数中,并在代码末尾简单地调用它。
  • 有时,创建列表并检查其长度可能比创建列表并添加其组件更快。
  • 支持列表理解(和生成器表达式,如果可能的话)而不是“for”和“while”。对于某些构造,map/reduce/filter还可以加快代码的速度。

根据这些指导方针,我成功地通过了无遗嘱。不过,仍在测试替代方案。