Как получить строку из списка (массива)?

Подскажите, как из списка/массива можно сделать альтернативу (т.е убрать цикл):

argHelp = ['1', '2', '3']
message = ""
for i in argHelp:
   message = ''.join([message, "Значение %s \n" % str(i)])
print(message)

Пробовал таким способом:

message = ''.join([message,["Значение {} \n".format(i) for i in argHelp]])

Возвращает такую ошибку:

Command raised an exception: TypeError: sequence item 1: expected str instance, list found


Ответы (2 шт):

Автор решения: timur

Насколько я понимаю, вам нужно это:

argHelp = ['1', '2', '3']
message = '\n'.join([f'Значение {value}' for value in argHelp])
print(message)
→ Ссылка
Автор решения: MaxU

Можно, конечно, воспользоваться map(), но под капотом это тот же неявный цикл:

msg = "Значение {}"
res = "\n".join(map(lambda x: msg.format(x), argHelp))

поэтому лучше (легче читается) воспользоваться циклом:

res = "\n".join([msg.format(x) for x in argHelp])

результат:

In [10]: print(res)
Значение 1
Значение 2
Значение 3
→ Ссылка