Guest User

Untitled

a guest
Jan 11th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. Python и спортивное программирование
  2. ===
  3.  
  4. 1. Весь код программы выносится в отдельную функцию: локальные переменные работают быстрее глобальных.
  5.  
  6. ```python
  7. def main():
  8. ...
  9.  
  10. main()
  11. ```
  12.  
  13. 2. Используйте встроенные функции: они написаны на C++ и работают быстрее.
  14.  
  15. ```python
  16. x = sum(a)
  17.  
  18. for ct in itertools.permutations(a):
  19. ...
  20.  
  21. a.sort()
  22. ```
  23.  
  24. 3. Считывайте данные и пишите их в виртуальные файлы стандартного ввода-вывода
  25.  
  26. ```python
  27. from sys import stdin, stdout
  28.  
  29. a, b = (int(x.strip()) for x in stdin)
  30. stdout.write("{}\n".format(a+b))
  31. ```
  32.  
  33. 4. Увеличьте глубину рекурсии
  34.  
  35. ```python
  36. import sys
  37. sys.setrecursionlimit(10000000)
  38. ```
  39.  
  40. 5. Осторожно изменяйте иммутабельные объекты: они перестраиваются заново
  41.  
  42. ```python
  43. # Плохо: работает за квадрат
  44. s = ''
  45. for x in a:
  46. s += x
  47.  
  48. #Хорошо: работает за линию
  49. s = ''.join(a)
  50. ```
  51.  
  52. 6. Используйте генераторы вместо for
  53.  
  54. ```python
  55. s = [x.upper() for x in a]
  56. ```
  57.  
  58. 7. Уменьшайте количество вызовов функций: они стоят дорого
  59.  
  60. 8. Пользуйтесь профайлером, чтобы увидеть самые долгие места в программе
  61.  
  62. ```
  63. python -m cProfile solution.py
  64. ```
Add Comment
Please, Sign In to add comment