Mam wiele zmiennych str-Str i chcę je połączyć do pojedynczej linii, ale z separatorem:

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

Jak widać, wygląda na obrzydliwe i nieoczekiwanie.

Czy jest więc jakikolwiek sposób, aby ułatwić dodanie separatora automatycznie między oddzielnymi strunami?

Str.s. Podoba mi się sposób, w jaki działa w funkcji drukowania:

print(var_a, var_b, var_c, var_d, sep="SEPARATOR")
0
Quanti Monati 3 czerwiec 2018, 20:49

5 odpowiedzi

Najlepsza odpowiedź

Użyj funkcji join():

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

Aktualizacja: Możesz również użyć własnej metody:

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)

W ten sposób możesz dodać separator przed wszystkimi słowami.

def my_preceding_join(args, sep):
      sentence=""
      for i in args:
          sentence+=sep+i
      return sentence

    data = my_preceding_join(words,'hello')
    print(data)
1
Taohidul Islam 4 czerwiec 2018, 11:19

Użyj join:

Jeśli twoje zmienne są ciągi, możesz po prostu zrobić:

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

Jeśli nie, musisz przekonwertować je do ciągów:

'SEPARATOR'.join(map(str, [var_a, var_b, var_c, var_d]))
2
Thierry Lathuille 3 czerwiec 2018, 17:54

Tak, możesz użyć str.join:

vars = [var_a, var_b, var_c, var_d]

res = 'SEPARATOR'.join(vars)
2
jpp 3 czerwiec 2018, 17:52

Używałbym join, jak:

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

Czy to jest odpowiedź na Twoje pytanie?

3
PANDA Stack 3 czerwiec 2018, 17:52

Możesz użyć str.join:

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

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

Wynik:

aSEPARATORbSEPARATORcSEPARATORdSEPARATOReSEPARATORf
4
Ajax1234 3 czerwiec 2018, 17:52