Soy bastante nuevo en Python y estoy completamente confundido por .join()
lo que he leído es el método preferido para concatenar cadenas.
Lo intenté:
strid = repr(595)
print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring().join(strid)
y obtuve algo como:
5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5
¿Por qué funciona así? ¿No debería 595
simplemente agregarse automáticamente?
Respuestas:
Mire cuidadosamente su salida:
He resaltado el "5", "9", "5" de su cadena original. El
join()
método Python es un método de cadena y toma una lista de cosas para unir con la cadena. Un ejemplo más simple podría ayudar a explicar:El "," se inserta entre cada elemento de la lista dada. En su caso, su "lista" es la representación de cadena "595", que se trata como la lista ["5", "9", "5"].
Parece que estás buscando en su
+
lugar:fuente
join
la propiedad útil de ser el inverso desplit
( docs.python.org/library/stdtypes.html#str.split )','.join(['a', 'b', 'c', ''])
da "a, b, c"string.join
con loos.path.join
que efectivamente concatena caminosjoin
toma una cosa iterable como argumento. Por lo general, es una lista. El problema en su caso es que una cadena es en sí misma iterable, dando a cada carácter a su vez. Su código se descompone en esto:que actúa igual que esto:
y así produce tu cadena:
Las cadenas como iterables son uno de los problemas iniciales más confusos con Python.
fuente
Para agregar una cadena, simplemente concatene con el
+
signo.P.ej
join
conecta las cadenas juntas con un separador. El separador es lo que coloca justo antes dejoin
. P.ejJoin toma una lista de cadenas como parámetro.
fuente
join () es para concatenar todos los elementos de la lista. Para concatenar solo dos cadenas "+" tendría más sentido:
fuente
Para ampliar un poco más lo que otros dicen, si quisieras usar join para simplemente concatenar tus dos cadenas, harías esto:
fuente
Hay una buena explicación de por qué es costoso usarlo
+
para concatenar una gran cantidad de cadenas aquífuente
Al proporcionar esto como entrada,
Python devuelve esto como salida:
fuente
Si esto es una entrada, usando el método JOIN, podemos agregar la distancia entre las palabras y también convertir la lista a la cadena.
Esta es la salida de Python
fuente
"" .join puede usarse para copiar la cadena de una lista a una variable
fuente