Вашему решению предоставлен список натуральных чисел numbers
.
Напишите выражение для генерации строки, представляющей собой отсортированный список чисел, записанных через дефис, окружённый пробелами, без повторений.
Примечание
В решении не должно быть ничего, кроме списочного выражения.
Пример
Ввод
rle = [('a', 2), ('b', 3), ('c', 1)]
Вывод
'aabbbc'
Ввод
rle = [('1', 1), ('0', 2), ('5', 1), ('0', 2)]
Вывод
'100500'
Решение
В этой задачи нам требуется с помощью списочного выражения пробежаться по списку кортежей, подготовить список строк, для “склейки” и склеить их с помощью метода join().
Фактически, нам надо завернуть в списочное выражение следующий код:
Python
result = ''
chars = []
for char, count in rle:
chars.append(char * count)
result = ''.join(chars)
Посмотреть код
Решение
Python
''.join(char * count for char, count in rle)
Опечатка или взаимозаменяемая терминология?
В описании решения написано “пробежаться по словарю”, однако там вводные данные не являются словарём, а списком кортежей.
Вы правы, это сутевая опечатка.
Слово “словарь” здесь использовалось в том смысле, что у нас всегда есть пара буква – количество повторений, что по сути можно рассматривать, как значение конкретной ячейки словаря на данном этапе его чтения.
Я исправил текст.