¿Cómo convierto todos los elementos de una lista en flotantes? [duplicate]

3 minutos de lectura

Tengo un script que lee un archivo de texto, extrae números decimales como cadenas y los coloca en una lista.

Así que tengo esta lista:

my_list = ['0.49', '0.54', '0.54', '0.55', '0.55', '0.54', '0.55', '0.55', '0.54']

¿Cómo convierto cada uno de los valores en la lista de una cadena a un flotante?

Yo he tratado:

for item in my_list:
    float(item)

Pero esto no parece funcionar para mí.

  • No utilice lista como nombre de variable.

    –Tim Pietzcker

    23 de octubre de 2009 a las 15:39

  • Para profundizar en el comentario anterior: usando list como un nombre de variable sombreará el incorporado list constructor, por lo tanto, no le permite usarlo en el mismo ámbito

    – Lasse Halberg Adiós

    25 de junio de 2019 a las 16:05


[float(i) for i in lst]

para ser precisos, crea una nueva lista con valores flotantes. A diferencia del map enfoque funcionará en py3k.

  • Para matrices grandes, recomendaría usar numpy: np.array(inp_list, dtype=np.float32). Ni siquiera tiene que especificar si es un flotador y simplemente usar: np.array(inp_list)

    – Thomas Devoogdt

    23 mayo 2018 a las 13:40


  • @Thomas Devoogdt: creo que necesita especificar el tipo; de lo contrario, obtendrá una gran variedad de cadenas

    – seb007

    2 de julio de 2019 a las 9:28


  • Tenga en cuenta que debe asignar [float(i) for i in lst] a algo. P.ej: new_list = [float(i) for i in lst]

    – FaizFizy

    24 de octubre de 2019 a las 2:27


  • ¿Por qué Python no tiene una función profesional para realizar esta operación?

    – usuario2585501

    7 de octubre de 2021 a las 0:17

Avatar de usuario de Tim Pietzcker
Tim Pietzcker

map(float, mylist) Deberías hacerlo.

(En Python 3, el mapa deja de devolver un objeto de lista, por lo que si desea una nueva lista y no solo algo para iterar, necesita list(map(float, mylist) – o use la respuesta de SilentGhost, que podría decirse que es más pitónica).

  • Esto es, de hecho, un diseño subóptimo en Python 3.

    – xuacong84

    6 de noviembre de 2019 a las 7:28

Avatar de usuario de Amin Kiany
Amin Kiany

Este sería otro método (¡sin usar ningún bucle!):

import numpy as np
list(np.float_(list_name))

  • No es necesario volver a incluir el np.array en la lista si desea mantenerlo como un np.array =)

    – alvas

    19 de junio de 2018 a las 1:49

Avatar de usuario de Denis Otkidach
Denis Otkidach

float(item) hacer lo correcto: convierte su argumento en flotante y lo devuelve, pero no cambia el argumento en el lugar. Una solución simple para su código es:

new_list = []
for item in list:
    new_list.append(float(item))

El mismo código puede escribirse más corto usando la comprensión de listas: new_list = [float(i) for i in list]

Para cambiar la lista en el lugar:

for index, item in enumerate(list):
    list[index] = float(item)

Por cierto, evita usar list para sus variables, ya que enmascara la función integrada con el mismo nombre.

Avatar de usuario de Alireza
Alireza

incluso puedes hacer esto por numpy

import numpy as np
np.array(your_list,dtype=float)

esta matriz de retorno np de su lista como flotante

también puede establecer ‘dtype’ como int

  • Pero luego está devolviendo una matriz numpy, no una lista.

    – usuario650261

    24 de junio de 2019 a las 19:42

avatar de usuario de theProcrastinator
el procrastinador

Puedes usar el map() función para convertir la lista directamente a floats:

float_list = map(float, list)

  • Pero luego está devolviendo una matriz numpy, no una lista.

    – usuario650261

    24 de junio de 2019 a las 19:42

avatar de usuario de bfree67
bfree67

Puede usar numpy para convertir una lista directamente en una matriz o matriz flotante.

    import numpy as np
    list_ex = [1, 0] # This a list
    list_int = np.array(list_ex) # This is a numpy integer array

Si desea convertir la matriz de enteros en una matriz flotante, agréguele 0.

    list_float = np.array(list_ex) + 0. # This is a numpy floating array

¿Ha sido útil esta solución?