Как получить строку из списка (массива)?
Подскажите, как из списка/массива можно сделать альтернативу (т.е убрать цикл):
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