2011-12-17 8 views
23

Quería construir una cadena de una lista.Cadena de Python concat con lista

que utiliza el comando() string.join, pero si tengo:

['hello', 'good', 'morning'] 

me sale: hellogoodmorning

¿Hay un método que me permite dejar un espacio entre cada palabra? (sin la necesidad de escribir un bucle for)

saludos cordiales.

+3

¿Por qué no mostrar exactamente cómo "usaste el comando string.join()"? –

Respuesta

41

Todo lo que necesita hacer es agregar el espacio delante de la unión.

' '.join(list) 
13
>>> ' '.join(['hello', 'good', 'morning']) 
'hello good morning' 

La mejor y más estándar para unir una lista de cadenas. No puedo pensar en nada mejor que este.

3
>>> " ".join(['hello', "good", "morning"]) 
'hello good morning' 

o puede utilizar la función de string.join(), que utiliza un solo espacio como separador predeterminado.

>>> help(string.join) 
Help on function join in module string: 

join(words, sep=' ') 
    join(list [,sep]) -> string 

    Return a string composed of the words in list, with 
    intervening occurrences of sep. The default separator is a 
    single space. 

ejemplo:

>>> import string 
>>> string.join(['hello', "good", "morning"]) 
'hello good morning' 
4

Esto hace lo que quiere:

" ".join(['hello', 'good', 'morning']) 

Generalmente, cuando usted está llamando join() en alguna cadena se utiliza " " para especificar el separador entre los elementos de la lista .

4

' '.join(...) es la manera más fácil como otros han mencionado. Y, de hecho, es la forma preferida de hacerlo en todos los casos (incluso si se está uniendo sin relleno, simplemente use ''.join(...)).

Si bien todavía tiene algunas funciones útiles ... la mayoría de las funciones de los módulos string se han convertido en métodos del tipo/objeto str.

Puede encontrar la lista completa de las funciones de cadena en desuso (incluyendo join) en la sección Deprecated string functions de los documentos de python.

Cuestiones relacionadas