Однолинейное решение
print(''.join(['{', ', '.join([': '.join((str(i), str(i * i),)) for i in range(1, n + 1)]), '}']))
Объяснение
В модуле str
есть встроенная функция join
. С его помощью вы можете объединить список строк с указанным разделителем.
Следующий пример
','.join(['Hello', 'World'])
вернет строку concat
'Hello, world'
Вы можете видеть, что join
очень хорошо обрабатывает поля.
Но учтите, что join
принимает один аргумент, список строк. Вы не можете предоставить ему список целых чисел; в противном случае join
выдаст сообщение об ошибке:
TypeError: sequence item 0: expected str instance, int found
Таким образом, вы должны принудительно преобразовать целые числа, сгенерированные range
, в строки с str
.
Ссылки