Как перебирать элементы в списке, печатать одинаковые элементы в одной строке, печатать разные элементы в других строках и т. Д.? - PullRequest
0 голосов
/ 14 февраля 2020

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

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

Ввод:

2

4, М

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()

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

1 Ответ

1 голос
/ 14 февраля 2020

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

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

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

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

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

...