separator.join(sequence)
вставляет separator
между каждым элементом в sequence
; если sequence
- это строка , он просто вставляет разделитель между каждым символом строки.
Я думаю, что root вашей путаницы заключается в том, что вы конвертируете list в строку, когда кажется, что вы действительно хотите превратить каждый элемент в строку (чтобы затем можно было объединить список строк).
lst = [1, 2, 3, 4]
list_as_string = str(lst)
print(list_as_string)
=> "[1, 2, 3, 4]"
Чтобы сделать каждый элемент в списке строкой, вы можете использовать понимание списка. (Составление списков - очень полезные Python инструменты для применения одной и той же операции к каждому элементу в последовательности; если вы не использовали их, ознакомьтесь с этим учебным пособием .)
list_of_strings = [str(i) for i in lst]
print(list_of_strings)
=> ["1", "2", "3", "4"]
Результат этого можно объединить, как и следовало ожидать (и вы можете добавить скобки).
output = "[" + "+".join(list_of_strings) + "]"
print(output)
=> "[1+2+3+4]"
В качестве альтернативы, если по какой-то причине вы определенно хотите сначала преобразовать список в строку, вы можете использовать метод string.replace(old, new)
, чтобы просто заменить каждый ", "
на "+"
.
print(list_as_string.replace(", ", "+"))
=> "[1+2+3+4]"
Также обратите внимание, что list
в Python - это фактическое имя класса list
, и переопределять его как обычную переменную - плохая привычка.