Hola, necesito ayuda para escribir una función para convertir la representación de cadena del precio en valores flotantes reales = ['1.999,00', '299,00', '299,86', '1.549,99'] idealmente, la salida sería la salida = [1999,00, ...
3 respuestas
Otro método alternativo es;
values = ['1.999,00','299,00','299,86', '1.549,99']
values = [float(value.translate(str.maketrans({'.': '', ',': '.'}))) for value in values]
Esta es la salida:
print(values)
[1999.0, 299.0, 299.86, 1549.99]
Maketrans es una forma elegante de intercambiar valores de dos variables entre sí simultáneamente, por ejemplo, A, B = B, A
Hayo, primero reemplace el punto con nada, luego reemplace ,
con .
.
values = ["1.999,00", "299,00", "299,86", "1.549,99"]
output = [float(x.replace(".", "").replace(",", ".")) for x in values]
print(output)
Por el aspecto de las cosas, parece que está tratando con el formato euro. Para simplificar, volveremos al inglés. con eso, intercambie puntos con nada y comas con puntos. Tenga una nueva lista para enviar flotantes después de la conversión.
values = ['1.999,00','299,00','299,86', '1.549,99']
floatValues = []
for v in values:
tmp = v.replace(".", "").replace(",", ".")
floatValues.append(float(tmp))
print ("values: ", values);
print ("floatValues: ", floatValues);
Salida
values: ['1.999,00', '299,00', '299,86', '1.549,99']
floatValues: [1999.0, 299.0, 299.86, 1549.99]
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.