Как перебирать элементы в списке, печатать одни и те же элементы в одной строке, печатать разные элементы в других строках и так далее?

Я работал над некоторыми примерами вопросов для конкурса, и в настоящее время я застрял на одном из них. Это называется временной декомпрессией, и два друга нашли способ отправлять друг другу зашифрованный код. Приведенная ниже функция запрашивает у пользователя L, который представляет собой номер кода, который необходимо отправить. для каждой строки в l пользователю будет предложено ввести N, символ, где N — число. Я нашел способ преобразовать N в диапазон для цикла for, который будет перебирать каждый L, находить N для каждого L, а затем много раз выводить символ N.

Проблема в том, что вместо того, чтобы печатать в одной строке, а затем в новой строке для каждого L, он печатает в той же строке.

Вход:

2

4, M

8, =

ожидаемый результат:

ММММ

========

Что я получаю:

ММММ========

def time_decompress():
l = int(input())
a_list = []
store_list = []
lastchar = [0]
for i in range(l):
    b = input().split(" ")
    a_list.append(b)
for item in a_list:
    for i in range(int(item[0])):
        print(item[1], end = "")

time_decompress()

Спасибо за помощь.


person Yes    schedule 14.02.2020    source источник


Ответы (1)


После печати item[1] запрошенного количества раз (внутри цикла for) вы должны напечатать новую строку.

for item in a_list:
    for i in range(int(item[0])):
        print(item[1], end = "")
    print("")

Другое решение без использования цикла:

for item in a_list:
    print(item[1]*int(item[0]))

Это работает, потому что в python умножение строки на число повторяет строку столько раз. например. 'a' * 5 приводит к aaaaa.

person Noah    schedule 14.02.2020