Python 中不太复杂的串联

Less complicated concatenation in Python

我有多个 str 变量,我想将它们连接成一行,但要使用分隔符:

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

如您所见,它看起来很恶心且效率低下。

那么,有什么方法可以通过在单独的字符串之间自动添加分隔符来简化它吗?

P.S。 我喜欢它在打印功能中的工作方式:

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

您可以使用 str.join:

def custom_join(*args, sep=''):
  return sep.join(args)

print(custom_join('a', 'b', 'c', 'd', 'e', 'f', sep="SEPARATOR"))

输出:

aSEPARATORbSEPARATORcSEPARATORdSEPARATOReSEPARATORf

是的,您可以使用 str.join:

vars = [var_a, var_b, var_c, var_d]

res = 'SEPARATOR'.join(vars)

我会使用 join,例如:

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

这是否回答了您的问题?

使用join:

如果你的变量是字符串,你可以简单地做:

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

如果不是,则必须将它们转换为字符串:

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

使用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 sentence

words=["abc","def","ghi"]
data = my_join(words,'hello')
print(data)

这样你就可以在每个 words.Like:

之前添加分隔符
def my_preceding_join(args, sep):
      sentence=""
      for i in args:
          sentence+=sep+i
      return sentence

    data = my_preceding_join(words,'hello')
    print(data)