Удалить новую строку в конце цикла for - Python 2.x

Я делал упражнения на codeabbey.com, чтобы стереть ржавчину, и я продолжаю сталкиваться с этой небольшой, но все еще расстраивающей проблемой. Я хочу, чтобы мои программы выдавали одну строку из n элементов вывода, а затем новую строку для любых n строк заданного ввода, но все мои программы выплевывали одну строку (n-1) элементов, новую строку, а затем последний элемент,

Вот пример, в котором мне дается сначала количество обрабатываемых пар, а затем сами пары, и мне поручено найти минимум (пожалуйста, прости меня за ленивое использование ранее существующих функций):

quanta = int(raw_input())
print "\n"

for i in xrange(quanta):
    a = raw_input().split()
    a = map(int, a)
    print min(a),

и этот ввод копируется в командную строку:

3
5 3
2 8
100 15

Я ожидаю этот вывод:

3 2 15

но вместо этого я получаю этот вывод:

3 2
15

Тогда мой вопрос: как мне избавиться от этой новой строки?

1 ответ

Решение

Я был в состоянии воспроизвести. С этим в буфере копирования:

3
5 3
2 8
100 15

при запуске сценария и вставке его без завершающей строки, сценарий остается в a = raw_input().split() третьей строки ввода, но уже вывел min из двух строк выше (3 а также 2), поэтому, когда вы нажмете на новую строку, то raw_input входит в новую строку и последний min (15) печатается.

Одним из решений является печать только в конце:

quanta = int(raw_input())
print "\n"

res = []
for i in xrange(quanta):
    a = raw_input().split()
    a = map(int, a)
    res.append(min(a))

print(" ".join(str(i) for i in res))

Другой - также включить завершающий перевод строки в буфер копирования (включен MacOs вам нужно перетащить курсор мыши под линией, чтобы выбрать конечный перевод строки)

Другие вопросы по тегам