Менее сложная конкатенация в Python

Quanti Monati спросил: 10 мая 2018 в 04:09 в: python

У меня есть несколько str-переменных, и я хочу объединить их в одну строку, но с разделителем:

var_a + 'SEPARATOR' + var_b + 'SEPARATOR' + var_c + 'SEPARATOR' + var_d

Как вы может показаться отвратительным и неэффективным.

Итак, есть ли способ сделать это проще, добавив разделитель автоматически между отдельными строками?

PSI, как способ работы в функции печати

print(var_a, var_b, var_c, var_d, sep="SEPARATOR")

5 ответов

Ajax1234 ответил: 10 мая 2018 в 04:12

Вы можете использовать str.join:

def custom_join(*args, sep=''):
  return sep.join(args)print(custom_join('a', 'b', 'c', 'd', 'e', 'f', sep="SEPARATOR"))

Выход:

aSEPARATORbSEPARATORcSEPARATORdSEPARATOReSEPARATORf
PANDA Stack ответил: 10 мая 2018 в 04:23
Это также замечательное введение в аргумент *args!
Есть решение
Taohidul Islam ответил: 11 мая 2018 в 09:39

Используйте функцию join():

    words = [var_a,var_b,var_c,var_d]
    my_separator = "this is a separator"
    my_expected_sentence= my_separator.join(words)

Обновление. Также вы можете использовать свой собственный метод:

def my_join(args, sep):
  sentence=""
  for i in args:
      sentence+=i+sep
  return sentencewords=["abc","def","ghi"]
data = my_join(words,'hello')
print(data)

Таким образом вы можете добавить разделитель перед каждым словом. Как:

def my_preceding_join(args, sep):
      sentence=""
      for i in args:
          sentence+=sep+i
      return sentence    data = my_preceding_join(words,'hello')
    print(data)
PANDA Stack ответил: 10 мая 2018 в 04:12

Я бы использовал join, например:

   mystring = 'SEPARATOR'.join([var_a, var_b, var_c, var_d])
   print(mystring)

Отвечает ли это на ваш вопрос?

jpp ответил: 10 мая 2018 в 04:12

Да, вы можете использовать str.join:

vars = [var_a, var_b, var_c, var_d]res = 'SEPARATOR'.join(vars)
Thierry Lathuille ответил: 10 мая 2018 в 04:14

Используйте join:

Если ваши переменные являются строками, вы можете просто сделать:

'SEPARATOR'.join([var_a, var_b, var_c, var_d])

Если это не так, вы должны преобразовать их в строки:

'SEPARATOR'.join(map(str, [var_a, var_b, var_c, var_d]))

Дополнительное видео по вопросу: Менее сложная конкатенация в Python

Python-джедай #3 - Работа со строками

Python-джедай #19 - Форматирование строк

5.Python для Начинающих - Строки