Я пытаюсь напечатать многострочную строку в цикле «для». Проблема в том, что я хотел бы, чтобы выходные данные были напечатаны на одинаковых строках. Пример:Многострочная печать в цикле «для»
for i in range(5):
print('''
{a}
|
{b}
'''.format(a=i,b=i+1))
Выход выглядит следующим образом:
0
|
1
1
|
2
2
|
3
3
|
4
4
|
5
Вместо этого я хотел бы, чтобы это было:
0 1 2 3 4
| | | | |
1 2 3 4 5
Но я не могу, как это сделать. Спасибо за помощь.
+1 Я чувствую, что это самый пифонический. Я бы сказал, чтобы переключить понимание списков на генераторные выражения. str.join может принимать любые итерации. –
@DavisYoshida Я раньше не встречал генераторные выражения - это просто использование '. '.join (range (x))'? – Tim
@Tim No. Но вы можете просто опустить скобки '[]' и, таким образом, сохранить некоторую память, потому что вы избегаете создания промежуточного списка: «.» .join (str (i) для i в диапазоне (x)) ' – schwobaseggl