Reemplazar punto por coma en Python 3

publicado por: Anonymous

Hola tengo una lista de decimales que convertí a String, para poder cambiar los puntos por comas. Pero con “replace” no me permite realizar el cambio, lo estoy haciendo de esta forma:

   for i in range(len(UCL)): #UCL de corte
      UCL[i].replace(".",",")
      print(UCL[i])

La lista originl UCL es de la forma:

    ['2.363636368', '2.17391304', '3.875', '2.282828286', '2.383838386', '2.616161618', '2.363636368', '4.85', '4.75', '2.282828289', '2.616161618', '0.666666666', '3.0', '3.272727272', '2.434343439', '0.666666666', '0.666666666', '2.538461538', '0.666666666', '3.875', '2.616161618', '2.393939396', '0.666666666', '0.666666666', '0.666666666', '0.666666666', '2.383838384']

Mi idea es imprimir lo mismo pero cambiando los puntos por comas dentro de cada string de la lista UCL.

solución

EL problema es que str es inmutable y replace por tanto retorna una copia de la cadena (no puede modificar la cadena original). Puedes crear una nueva lista usando compresión de listas con:

nueva_UCL = [c.replace('.', ',') for c in UCL]

Si prefieres usar un for normal y modificar la lista original debes hacer:

for i in range(len(UCL)):
    UCL[i] = UCL[i].replace(".", ",")

Supongo que quieres modificar la lista además de imprimirla. Si solo quisieras imprimir usando comas, sin modificar la lista original, podrias hacer (en Python 3):

print(*(c.replace(".", ",") for c in UCL), sep='n')

O para Python 2/Python3:

for c in UCL:
    print(c.replace(".", ","))
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *