varios unir una misma listas lista eliminar elementos concatenar concatenacion comparar como agregar python string list join concatenation

unir - eliminar varios elementos de una lista python



Concatenar elemento en la lista de cadenas (4)

¿Existe una forma más sencilla de concatenar elementos de cadena en una lista en una sola cadena?

¿Puedo usar la función str.join() para unir elementos en la lista?

Por ejemplo, esta es la entrada [''this'',''is'',''a'',''sentence''] y esta es la salida deseada this-is-a-sentence

sentence = [''this'',''is'',''a'',''sentence''] sent_str = "" for i in sentence: sent_str += str(i) + "-" sent_str = sent_str[:-1] print sent_str


Aunque share es buena, creo que es más comprensible de esta manera:

from str import join sentence = [''this'',''is'',''a'',''sentence''] join(sentence, "-")

El segundo argumento para join () es opcional y por defecto es "".

EDITAR: Esta función fue eliminada en Python 3


Es muy útil para los principiantes saber por qué unirse es un método de cadena.

Es muy extraño al principio, pero muy útil después de esto.

El resultado de la unión es siempre una cadena, pero el objeto a unirse puede ser de muchos tipos (generadores, lista, tuplas, etc.)

.join es más rápido porque asigna memoria solo una vez. Mejor que la concatenación clásica. explicación extendida

Una vez que lo aprendes, es muy cómodo y puedes hacer trucos como este para agregar paréntesis.

>>> ",".join("12345").join(("(",")")) ''(1,2,3,4,5)'' >>> lista=["(",")"] >>> ",".join("12345").join(lista) ''(1,2,3,4,5)''


Una forma más genérica de convertir listas de python en cadenas sería:

>>> my_lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> my_lst_str = ''''.join(map(str, my_lst)) >>> print(my_lst_str) ''12345678910''


Usar join

>>> sentence = [''this'',''is'',''a'',''sentence''] >>> ''-''.join(sentence) ''this-is-a-sentence''