Cómo imprimir una cadena de variables sin espacios en Python (encoding mínima!)

Tengo algo como: print "\n","|",id,"|",var1,"|",var2,"|",var3,"|",var4,"|"

Se imprime con espacios para cada variable.

 | 1 | john | h | johnny | mba | 

Quiero algo como esto :

 |1|john|h|johnny|mba| 

Tengo 20 variables que tengo que imprimir y odio usar sys.stdout.write (var) para cada una de ellas. Gracias Pythonistas!

Trate de usar join :

 print "\n"+'|'.join([id,var1,var2,var3,var4]) 

o si las variables no son ya cadenas:

 print "\n"+'|'.join(map(str,[id,var1,var2,var3,var4])) 

El beneficio de este enfoque es que no tiene que crear una cadena de formato largo y, básicamente, funciona sin cambios para un número arbitrario de variables.

Para un número variable de valores:

 print '|%s|' % '|'.join(str(x) for x in [id, var1, var2, var3, var4]) 
 print "\n|%s|%s|%s|%s" % (id,var1,var2,var3,var4) 

Echa un vistazo a formato de cadena .

Editar: Las otras respuestas con unirse son mejores. Unirse espera cadenas.

Si está usando Python 2.6 o más reciente, use el nuevo estándar para formar cadenas, el método str.format:

 print "\n{0}|{1}|{2}|".format(id,var1,var2) 

Texto del enlace