Медленная работа функции вывода print в Python3.3

Решая олимпиадные задачи на python, столкнулся со странной проблемой. Одно и тоже решение в python2.7 выполняется ~400ms, а в python3.3 не вкладывается в 1с. Учитывая что проблема встречается на задачах с большим объемом выходных данных, подозреваю что медленно отрабатывает функция print. Есть возможность ускорить вывод или может быть решить проблему в целом?
  • Вопрос задан
  • 3049 просмотров
Пригласить эксперта
Ответы на вопрос 4
@v_prom
можно попробовать писать напрямую в поток sys.stdout.
Ответ написан
Комментировать
strib
@strib
Вот тут подробно обсудили "медленную" работу print().
stackoverflow.com/questions/3857052/why-is-printin...
Буферизация должна помочь. Вечером постараюсь попробовать. Свой пример можете выложить?
Ответ написан
Комментировать
ilya3d
@ilya3d Автор вопроса
для примера, вот решение обратной задачи о нахождении наибольшей возрастающей подпоследовательности
www.russiancodecup.ru/championship (задача С)

cnt = int(input())

def res( m, n ):
    d = [ m[i]*n - i + 1 for i in range(n) ]
    return list(map( str, d ))

for vvv in range(cnt):
    n = int(input())
    m = [int(x) for x in input().split()]
    print( ' '.join( res( m, n ) ) )
Ответ написан
Комментировать
@IIggoorrII
print("hello") -> 0.3 sec 
print("hello", file=open('/dev/tty1', 'w')) -> 0.00031 sec
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы